【发布时间】:2023-03-27 08:58:03
【问题描述】:
我使用以下代码在 PictureBox1 上制作简单的手绘(画笔)绘图。绘图很好,但无法永久清除我制作的绘图。如果我单击Button1,绘图将被清除,但一旦我移过PictureBox1,所有旧绘图(和 PictureBox1 图像)都会再次出现。有什么建议吗?
Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown
If e.Button = MouseButtons.Left Then
mousePath.StartFigure()
End If
End Sub
Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove
'// slide annotations
If e.Button = MouseButtons.Left Then
Try
mousePath.AddLine(e.X, e.Y, e.X, e.Y) 'Add mouse coordiantes to mousePath
Catch
End Try
End If
PictureBox1.Invalidate()
End Sub
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
'// slide annotations
Try
'// drwaing options
myUserColor = System.Drawing.Color.Red
myAlpha = 255
myPenWidth = 3
CurrentPen = New Pen(myUserColor, myPenWidth)
e.Graphics.DrawPath(CurrentPen, mousePath)
Catch
End Try
End Sub
Private Sub Button1_Click_2(sender As Object, e As EventArgs) Handles Button1.Click
Dim g As Graphics
g = PictureBox1.CreateGraphics()
g.Clear(PictureBox1.BackColor)
g.Dispose()
End Sub
【问题讨论】:
-
删除 Button1_Click 中的所有内容,然后在 PictureBox 中添加 GraphicsPath.Reset 和
Invalidate()。 Alternative method 绘制贝塞尔曲线。
标签: vb.net visual-studio graphics drawing picturebox