paint事件

jon_bon_jovi 2002-07-26 11:35:09
我用vb.net写的一个画图控件,在onpaint事件中重画所有的图形
但是发现在进行如最大化操作时,系统会多次调用onpaint,一般是6次
这样导致图形多次闪烁,很不舒服,这个问题如何解决,谢谢
...全文
132 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sumtec 2002-07-28
  • 打赏
  • 举报
回复
如果要用双缓冲结构:

Me.SetStyle(...) 查一下系统自带的帮助吧!
现在没有VS.NET
smhpnuaa 2002-07-28
  • 打赏
  • 举报
回复
使用双缓冲结构,但是.net的执行效率不高,闪烁难免出现。
sumtec 2002-07-27
  • 打赏
  • 举报
回复
试过了,非常抱歉,没有试除您所描述的现象。
我的实验方法:
+--------------------------+
| FORM1 |
+--------------------------+
| |
| |
| |
| |
| |
| |
| |
| |
+--------------------------+
| |
| PictureBox1 |
| |
| |
+--------------------------+

调试结果如下:
Form Resize:0 <--- 初始化, Restore状态
Form Paint:0
Picture Paint:0
Form Resize:1 <--- 最大化
Form Paint:1
Picture Paint:1
Form Resize:2 <--- 最小化
Picture Paint:2
Form Resize:3 <--- Form 被遮蔽后重新显示
Form Paint:2
Picture Paint:3


请出示您的代码,或者详细描述您的控件以及该控件在Form中的安排。
sumtec 2002-07-27
  • 打赏
  • 举报
回复
问得好!帮你试试……
sumtec 2002-07-27
  • 打赏
  • 举报
回复
噢!那我猜可能要这么做:
Sub xxx_Paint(...) Handles MyBase.Paint
SuspendLayout()
......
ResumeLayout()
End Sub
jon_bon_jovi 2002-07-27
  • 打赏
  • 举报
回复
我的usercontrol的主要功能是在上面画些线条,在上面还摆了些picbox
在form上就放了两个控件,一个是这个user control,另外有一个treeview
在最大化最小化是form的onpaint只被调用一次,而usercontrol的onpaint却被多次调用,不知道是怎么回事
谢谢

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧