窗口加载显示后与窗口最大化时动态画线的问题
先定义了一个画图类,类的构造函数是这样的:
Public Class Map
Private GF As Graphics
Private _Pen As Pen
Public Sub New(ByRef ShowControl As PictureBox)
GF = Graphics.FromHwnd(ShowControl.Handle)
GF.PageUnit = GraphicsUnit.Millimeter
_Pen = New Pen(Color.Black, 0.12)
Dim _PF(0) As PointF
_PF(0).X = ShowControl.Width
_PF(0).Y = ShowControl.Height
TransPTF(_PF)
Ox = 4
Oy = _PF(0).Y - 4
GF.TranslateTransform(Ox, Oy)
GF.ScaleTransform(1, -1)
End Sub
'还有就是一个画线过程:
Public Sub onpaint()
GF.Clear(Color.White)
GF.DrawLine(_Pen, 0, 0, 10, 10)
End Sub
End Class
在窗口代码里是这样的:
Private _M As Map
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_M = New Map(PictureBox1)
End Sub
'这个不起作用
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
_M.onpaint()
End Sub
'这个也不起作用
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
_M.onpaint()
End Sub
其实我就是想在窗口加载成功显示后在picturebox里显示一条线,并且在最大化时也显示出来,该怎么做?
(上面的代码执行后,移动窗体被其他窗口掩盖在移出来时线条在)