以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗体背景有图片,调整窗体大小时响应过慢问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=55092)

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

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

--  作者:有点甜
--  发布时间: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
--  发布时间:2014/8/11 17:22:00
--  
谢谢!我通过遍历窗口中的所有控件,给每个控件都设置了双缓存,大大缓解了窗体刷新闪烁的问题!另外,窗体的背景图排列方式也有一定影响,最好设为none,会好很多!