获取控件的Graphic对象,绘图方法都集中在了该对像中了。
创新互联制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站设计、网站建设,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为上1000+服务,创新互联网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
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
要用GreateGrahpics函数,比如要向 Panel1,填充颜色:
Dim g As Graphic=Panel1.CreateGraphics
Dim b as New Brush(Color.Blue)
g.FillRectangle(b,Panel1)
写的比较粗,意思就是这样的,你可以边看帮助边细细完成
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
e.Graphics.DrawRectangle(New Pen(Color.Red), 0, 0, 10, 10)
End Sub
Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
e.Graphics.DrawRectangle(New Pen(Color.Red), 0, 0, 10, 10)
End Sub
事实证明 都是有效果的 除非你代码有问题
Paint事件中写好代码,然后按钮事件中,这句就行。
picturebox1.Refresh
Paint事件是在控件需要重画时发生,就比如说窗体的Paint事件,只要窗体被其他窗口覆盖后又被重新显示时就会触发Paint事件
没有看到其他代码,暂无法判断哪里有问题
希望回答对你有帮助
继承(Inherits)控件就可以重写它的属性和方法,图标可以在paint中重绘,用gdi,工具主要在drawing和drawing2d中。
combobox弹出的框增加图标吗?个人看法可能需要得到那个句柄,才可以重绘,但那个好像是一体的,不知道能不能弄到句柄。
textbox可以自定义高度。只是以行高度为单位,改变字体大小即可,没必要重写吧。
我也自学,感觉基础容易学,进阶资料少。循序渐进也没序可循,基本是在摸索。
都是想到什么问题,就立下一个目标,然后攻破他,结果可能是尝试几天后,发现目标超出能力范围。
晦涩是相对的,实践出真知,多动手,基础就好了。