Foxtable(狐表)用户栏目专家坐堂 → 窗体背景有图片,调整窗体大小时响应过慢问题


  共有4290人关注过本帖树形打印复制链接

主题:窗体背景有图片,调整窗体大小时响应过慢问题

帅哥哟,离线,有人找我吗?
hdffzxf
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
窗体背景有图片,调整窗体大小时响应过慢问题  发帖心情 Post By:2014/8/10 21:01:00 [只看该作者]

如图,我将窗体背景设置了图片,并将分区面板以及table等控件都设置成了背景透明,显示的效果图非常好,小激动了一阵。但现在的问题是,只要调整窗口大小或者是拖动分区面板的分隔条,这个窗体各控件就会闪烁好一阵子才能显示出来,这个极大的打击了使用体验,想问老师有没有什么好的解决方案?

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140810204848.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-8-10 21:02:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/10 21:09:00 [只看该作者]

设置双缓存


 e.Form.panel.Gettype().GetProperty("DoubleBuffered",  Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue( e.Form.panel,True,Nothing)

 

如果是在对应控件设置的背景,你要对应设置对应控件的双缓存,类似

 

 Dim p As WinForm.PictureBox = e.Form.Controls("PictureBox1")
 p.baseControl.Gettype().GetProperty("DoubleBuffered",  Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic).SetValue(p.baseControl,True,Nothing)


 回到顶部
帅哥哟,离线,有人找我吗?
hdffzxf
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2014/8/11 17:22:00 [只看该作者]

谢谢!我通过遍历窗口中的所有控件,给每个控件都设置了双缓存,大大缓解了窗体刷新闪烁的问题!另外,窗体的背景图排列方式也有一定影响,最好设为none,会好很多!

 回到顶部