绘图事件绘制两个对象

Drawing event draws two object

程序只有这个代码。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    PictureBox1.Image = PictureBox2.Image
    Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
    g.DrawEllipse(New Pen(Color.MediumOrchid, 5), 30, 30, 30, 30)
    g.Dispose()
    PictureBox1.Refresh()
    PictureBox2.Refresh()
End Sub

点击前 PictureBox1 是空的,PictureBox2 是白色图像。

点击后PictureBox1PictureBox2都有椭圆。

我认为程序使用一个图像用于两个 pictureBox'es.So 当我绘制它们时它们都是 painted.I 想要设置 picbox2 白色图像和 picbox1 白色图像 ellipse.Any 解决方案 ?

您必须制作图像的副本,因此您将使用相同的数据,但不是相同的对象,因此不会对原始对象进行更改。

我不是 vb.net 专家,但你可以试试这个:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
    Button1.Click
    PictureBox1.Image = New Bitmap(PictureBox2.Image)
    Dim g As Graphics = Graphics.FromImage(PictureBox1.Image)
    g.DrawEllipse(New Pen(Color.MediumOrchid, 5), 30, 30, 30, 30)
    g.Dispose()
    PictureBox1.Refresh()
    PictureBox2.Refresh()
End Sub