要用GreateGrahpics函数,比如要向 Panel1,填充颜色:
创新互联公司专业为企业提供东海网站建设、东海做网站、东海网站设计、东海网站制作等企业网站建设、网页设计与制作、东海企业网站模板建站服务,10余年东海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
Dim g As Graphic=Panel1.CreateGraphics
Dim b as New Brush(Color.Blue)
g.FillRectangle(b,Panel1)
写的比较粗,意思就是这样的,你可以边看帮助边细细完成
获取控件的Graphic对象,绘图方法都集中在了该对像中了。
1. 通过控件GreateGrapic方法获得
2. Paint 事件参数e中也有此对象
相应的图形方法是DrawImage,vb.net中没有自动重绘功能,图形不是持久的,所以应当在Paint事件中绘图。
Private Sub PictureBox2_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox2.Paint
e.Graphics.SetClip(e.ClipRectangle)
e.Graphics.DrawImage(PictureBox1.Image, New Rectangle(0, 0, PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height), New Rectangle(5, 5, 100, 100), GraphicsUnit.Pixel)
End Sub
大体看一下这个类里的事件都是私有的(Private) 如果想在窗体中使用这个事件就把类中事件前的Private关键字改成Public如:
Public Sub PicCurve_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PicCurve.Paint
在窗体中调用的方法就是实例化类就行了。因为这个类有NEW所以在实例化的时候要赋参数
代码如下数值是我临时写的。调用的时候你根据实际情况改一下就行。参数PictureBox1是在窗体上添加的PictureBox控件。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim AA() As Single = {0.1, 1.2, 1.5, 1.6, 1.8}
Dim clsPaint As New bbbb(PictureBox1, AA, "PictureBox_1")
clsPaint.PicCurve_Paint(Me, Nothing)
End Sub
Paint事件中写好代码,然后按钮事件中,这句就行。
picturebox1.Refresh