我使用此代码在我的表单上绘制了2张图片:
Public Class drawimage
Dim image = Image.FromFile("E:\1.png")
Dim image2 = Image.FromFile("E:\2.png")
Private Sub testbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles testbutton.Click
Me.CreateGraphics.DrawImage(image, 0, 0, 100, 100)
Me.CreateGraphics.DrawImage(image2, 200, 200, 100,100)
end sub
我想以编程方式删除其中一个图片,所以我尝试使用此代码:
Me.CreateGraphics.Clear(Me.BackColor)
但这清除了我的所有图像。我可以只清除一张图片吗?一个名为“图像”的人。
答案 0 :(得分:1)
绘制和绘制要保留的内容需要在Paint事件中完成。这样,每当Windows告诉您的表单重新绘制时,您的图像就会被绘制出来。事实上,如果另一种形式浮在它上面,它们将会丢失。此外,它使您不必创建图形对象。
要摆脱一个,你需要一面旗帜。这样的事情会起作用:
Private drawBoth As Boolean = True
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
drawBoth = Not drawBoth
Me.Invalidate
End Sub
Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
e.Graphics.DrawImage(img, 0, 0, 100, 100)
If drawBoth Then
e.Graphics.DrawImage(img2, 200, 200, 100, 100)
End If
End Sub
Image
是位图或图片的错误名称,因为.NET中有一个您甚至使用的图像类型。在您的图片和System.Drawing.Image
答案 1 :(得分:0)
你可以在上面画一个矩形。
Me.CreateGraphics.FillRectangle(new SolidColorBrush(Me.BackColor), 0, 0, 100,100)