我正在将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
,但结果是一样的。我已经检查过我没有使用背景颜色绘图,并且实际调用了该函数。
我忽略了什么?
答案 0 :(得分:2)
Paint处理程序的EventArgs
类型无效。它应该是System.Windows.Forms.PaintEventArgs
使用e.Graphics
属性获取图形实例。
mygraphics = e.Graphics
答案 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