以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于页面闪烁的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97307)

--  作者:lovemaders
--  发布时间:2017/3/9 16:02:00
--  关于页面闪烁的问题
闪屏的解决方法谁有
也不算闪屏,就是2个窗口,一个窗口中文本框比较多,另一个窗口颜色比较深或者是有背景图片,这个时候切换2个窗口,有文本框的那个地方明显的闪烁明显。怎么处理好一些?

 

尤其是另一个界面只有一个背景图片的时候,切换到有很多文本框的界面的时候,文本框的位置会很明显的类似闪烁闪眼睛的。

如果不是背景图片而是普通的跟文本框窗口差不多颜色的普通界面则没有那么明显。

 

 

有什么处理方案?请指导呀。


--  作者:有点色
--  发布时间:2017/3/9 16:50: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)


--  作者:lovemaders
--  发布时间:2017/3/9 17:09:00
--  没有反应还是闪,另外如果窗口中有100个控件每个控件都要设置一下这个代码?
没有反应还是闪,另外如果窗口中有100个控件每个控件都要设置一下这个代码?
--  作者:有点色
--  发布时间:2017/3/9 19:08:00
--  
以下是引用lovemaders在2017/3/9 17:09:00的发言:
没有反应还是闪,另外如果窗口中有100个控件每个控件都要设置一下这个代码?

 

上面的代码,是处理图片闪烁的。有背景图片的控件都要设置下双缓存。

 

如果你的是控件内容闪烁,你看看是否循环改变了控件内容导致的,比如 绑定了表列,加载或者筛选或者切换行都会 闪一下

 

具体问题做例子上来


--  作者:lovemaders
--  发布时间:2017/3/10 12:09:00
--  是的主要看到的就是文本框闪
是的主要看到的就是文本框闪,但是只切换窗口的时候都会闪,这是正常的??
--  作者:有点色
--  发布时间:2017/3/10 17:07:00
--  
做个例子看看吧。