Member 13904845 Ответов: 3

Как я могу удалить текст внутри picturebox


После каждого клика на picturebox программа будет помещать круг с единицей в нем. Следующий щелчок поставит 2 и так далее. Я добавил кнопку отмены, если пользователь случайно нажал, когда он этого не хотел. Как я могу удалить текст, который был записан в picturebox?

Что я уже пробовал:

Это код, который я использовал, чтобы написать круг с номером внутри него:
Public Class Form1
    Dim Counter As Integer
    Dim g As Graphics
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        g = PictureBox1.CreateGraphics
        Counter = 0
    End Sub

    Private Sub PictureBox1_MouseDown(sender As Object, e As EventArgs) Handles PictureBox1.MouseDown
        Dim X As Integer
        Dim Y As Integer
        Dim f As New Font("Arial", 10)
        X = Cursor.Position.X
        Y = Cursor.Position.Y
        Counter = Counter + 1
        TextBox1.Text = Counter
        If Counter = 1 Then
            g.DrawEllipse(Pens.Black, New Rectangle(X - 289, Y - 157, 20, 20))
            g.DrawString("1.", f, Brushes.Black, New Point(X - 285, Y - 155))
        End If
        If Counter = 2 Then
            g.DrawEllipse(Pens.Black, New Rectangle(X - 289, Y - 157, 20, 20))
            g.DrawString("2.", f, Brushes.Black, New Point(X - 285, Y - 155))
        End If
    End Sub
End Class

3 Ответов

Рейтинг:
1

Dave Kreskowiak

В принципе, вы не можете. Как только он нарисован, он становится постоянным.

Итак, что вам нужно сделать, так это реализовать функцию отмены. В довольно упрощенной реализации это означает отслеживание каждой операции (изменения), которую вы делаете с изображением.

Когда вы отменяете операцию, вы начинаете все сначала, применяя каждую операцию, добавленную в список, к исходному изображению, с которого вы начали, за исключением последнего. Вот вам и ваш "недоделанный" шаг.


Рейтинг:
1

Ron Anders

Если фон picturebox имеет один цвет, вы можете установить свой цвет круга, чтобы он был того же цвета, используя палитру цветов, если это необходимо, и нарисовать его снова в том же месте. Прест-о перемена-о она исчезла. Верни свой цвет и включи солдата.

Я сделал это.


Рейтинг:
1

Patrice T

Цитата:
Как я могу удалить текст, который был записан в picturebox?

Краткий ответ: как было сказано в предыдущих решениях, вы не можете удалить последнее изменение.
Поскольку любое изменение является кумулятивным и может накладываться на вещи уже в картине, невозможно знать, что было перезаписано изменением.
Единственный способ-запомнить исходное изображение и каждое изменение, сделанное таким образом, чтобы вы могли восстановить изображение до предыдущего состояния.