2

我正在将一个 VB6 应用程序转换为在图片框上绘制的 VB.Net。自然地,我阅读了精美的手册并在此处打开了此示例。因此,我制作了一个仅包含图片框的表单的小项目,并尝试了以下操作:-

Private Sub Picture1_paint(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) _
            Handles PictureBox1.Paint
    Dim mygraphics As Graphics
    mygraphics = PictureBox1.CreateGraphics
    Dim pen As New Drawing.Pen(System.Drawing.Color.Red, 1)
    mygraphics.DrawEllipse(pen, 0, 0, 100, 100)
    pen.Dispose
End Sub

就像它说的那样。但是在运行应用程序时,该框变为空白。在这里寻求帮助提出了一个建议,我应该使用 aFrame来代替,但结果是一样的。我已经检查过我没有在背景颜色中绘制,并且该函数实际上被调用了。

我忽略了什么?

4

2 回答 2

2

绘制处理程序的类型无效EventArgs。它应该是System.Windows.Forms.PaintEventArgs

使用e.Graphics属性获取图形实例。

 mygraphics = e.Graphics

参考链接MSDN - Control.Paint 事件

于 2012-06-28T13:45:15.687 回答
1

我认为ePainEventArgs类型,已经包含一个图形对象e.Graphics。改用那个。

Public Class Form1

    Private Sub PictureBox1_Paint(ByVal sender As System.Object, _
                ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint

        Dim pen As New Pen(Color.Red, 1)
        e.Graphics.DrawEllipse(pen, 0, 0, 100, 100)
        pen.Dispose()

    End Sub

End Class

截屏

于 2012-06-28T13:48:38.770 回答