试图在相框上画画,但什么都没有出现

时间:2012-06-28 13:43:17

标签: vb.net picturebox

我正在将VB6应用程序转换为绘制图片框的VB.Net。当然,我阅读了精美的手册并打开了这个例子here。因此,我制作了一个带有仅包含图片框的表格的小项目,并尝试了以下内容: -

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
就像它说的那样。但是在运行应用程序时,该框变为空白。搜索帮助时出现了一个建议here,我应该使用Frame,但结果是一样的。我已经检查过我没有使用背景颜色绘图,并且实际调用了该函数。

我忽略了什么?

2 个答案:

答案 0 :(得分:2)

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

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

 mygraphics = e.Graphics

参考链接MSDN - Control.Paint Event

答案 1 :(得分:1)

我认为e属于PainEventArgs类型,已在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

Screenshot