十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
自动重绘,如果是False的话,不会自动重绘,必须执行Refresh指令才会重绘。
铁力网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
所谓重绘,是指当窗体或控件最小化,或被遮挡以后,再显示的时候,会将被遮挡的部分重新画出来。
可以通过2个方法:
1、将绘制相关代码全部放在 Form_Paint 这个事件中,其实此时不需要什么API,只要Form1.Refresh 就可以再次执行这个事件里的代码了,如果需要不同的显示,那么可以设置多个公共变量,显示不同的时期的样式就设置某个变量为不同的值,然后 Paint 中根据该值执行不同代码。
2、将AutoReDraw设置为TRUE,此时无论代码写在哪,都能将改变立即反映,但是如果程序中设计到调用 Form1.hDC 的时候可能会出问题,这个原因开始我也纳闷过,后来才知道 AutoReDraw设置为TRUE 时获取的 HDC仅是个伪HDC,是获取不到实际的HDC的 。
扩展资料:
使用下列图形方法工作,如:Circle、Cls、Line、Point、Print 和 Pset,该属性极为重要。利用这些方法,在改变对象大小或隐藏在另一个对象后又重新显示的情况下,设置 AutoRedraw 为 True,将在 Form 或 PictureBox 控件中自动重绘输出。
运行时 在程序中设置 AutoRedraw,可以在画持久图形(如背景色或网格)和临时图形之间切换。如果设置 AutoRedraw 为 False,以前的输出成为背景屏幕的一部分。当 AutoRedraw 设置为 False,用 Cls 方法清除绘图区时不会删除背景图形。把 AutoRedraw 改回 True 后,再用 Cls 将清除背景图形。
注意 如果设置 BackColor 属性,所有图形和文本,包括持久图形,都被清除。一般来说,除非 AutoRedraw 设置为 True,所有图形都需用 Paint 事件显示。
参考资料来源:百度百科-autoredraw
执行存储过程调用的是ADO.net
返回的结果集是一个DataSet对象。 如果不是,请检查下你的数据连接库,改下代码。
如果存储过程返回的是两个结果集,那么返回的DataSet就有两个DataTable对象。
调用的时候 只需要
DataSet ds=dbHelper.RunProcedure("Web_pGetDataPager");//假设的返回dataset对象的执行存储过程的方法。
ds.Tables[0] 就是第一个结果集
ds.Tables[1] 就是第二个结果集
//弱绑定第二个结果集 就是下面这样
Datagridview.DataSource=ds.Table[1];
Datagridview.DataBind();
vb.net没有自动重画功能,要在Paint事件中写代码对图形重画。
另外一种情况,如果在Image属性设置了一幅图像,图像能够保持完整性的。所以你可以把图形绘在位图上,把位图绑定到Image属性上。
先绑定一幅位图:
Dim bm as New BitMap(800,600)
PictureBox1.Image=bm
作图时不是对图片框,而是在位图上作图。
dim gr As Grapthics=Graphics.FromImage(bm) '建立位图的绘图设备
接下来就可用gr 的绘图方法作图
作完图,PictureBox1.Refresh 刷新一下。
新建一个Winform,在和Form1平行的位置粘贴如下代码
Public Class MyLabel
Inherits Label
Protected Overrides Sub OnPaint(e As PaintEventArgs)
e.Graphics.DrawEllipse(New Pen(Color.Red), New Rectangle(2, 2, 10, 10))
MyBase.OnPaint(e)
End Sub
End Class
运行,停掉,在工具箱找到MyLabel,拖动就可以看到效果。这只是最基本的重写,要模仿QQ还需要其他技术以及美工。
继承(Inherits)控件就可以重写它的属性和方法,图标可以在paint中重绘,用gdi,工具主要在drawing和drawing2d中。
combobox弹出的框增加图标吗?个人看法可能需要得到那个句柄,才可以重绘,但那个好像是一体的,不知道能不能弄到句柄。
textbox可以自定义高度。只是以行高度为单位,改变字体大小即可,没必要重写吧。
我也自学,感觉基础容易学,进阶资料少。循序渐进也没序可循,基本是在摸索。
都是想到什么问题,就立下一个目标,然后攻破他,结果可能是尝试几天后,发现目标超出能力范围。
晦涩是相对的,实践出真知,多动手,基础就好了。
重绘,四个方向都可以。
又或者先继承,代码
Public Class progro
Inherits ProgressBar
Protected Overrides ReadOnly Property CreateParams As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.Style = cp.Style Or H4 '从下而上。
Return cp
End Get
End Property
End Class