winform闪屏问题解决方案
2011-07-19 10:05
232 查看
这里所说的解决方案,其实也没有真正解决闪屏问题,暂时因个人能力和知识方面的原因,还没有找到比较好的解决方案,也请园子里的各位大侠大哥们出手共享大家的解决方案。
出现闪屏问题的原因:在winform开发中,我们为了实现比较美工的UI界面,常常会使用一些漂亮的背景图片放在Form中或者Panel中,而一个Form中可能有其他好几个背景,它们的颜色图案都不太一样,这样就会出现闪屏的问题,尤其是在一些性能不好的机器上,很容易看出来。
至于怎么解决,我在网上也找了很久,还是没有找到比较完美点的解决方案,但是用一些其他的方法可以减少闪屏,也就是说闪屏的效果不明显,这样也可以勉强符合要求了,接下来简介以下几种方案。
1、不使用图片作为背景,而用纯色替代,如果是这样的话,也就不会出现闪屏了,但如果UI上有特别要求的,这条路就行不通了。
2、重写Panel,然后在Panel中添加背景图片,而不是把背景图片添加到Form中,重写的Panel代码如下:
View Code
1 this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
2 this.SetStyle(ControlStyles.DoubleBuffer, true);
3 this.SetStyle(ControlStyles.UserPaint, true);
4 this.SetStyle(ControlStyles.ResizeRedraw, true);
出现闪屏问题的原因:在winform开发中,我们为了实现比较美工的UI界面,常常会使用一些漂亮的背景图片放在Form中或者Panel中,而一个Form中可能有其他好几个背景,它们的颜色图案都不太一样,这样就会出现闪屏的问题,尤其是在一些性能不好的机器上,很容易看出来。
至于怎么解决,我在网上也找了很久,还是没有找到比较完美点的解决方案,但是用一些其他的方法可以减少闪屏,也就是说闪屏的效果不明显,这样也可以勉强符合要求了,接下来简介以下几种方案。
1、不使用图片作为背景,而用纯色替代,如果是这样的话,也就不会出现闪屏了,但如果UI上有特别要求的,这条路就行不通了。
2、重写Panel,然后在Panel中添加背景图片,而不是把背景图片添加到Form中,重写的Panel代码如下:
View Code
1 this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
2 this.SetStyle(ControlStyles.DoubleBuffer, true);
3 this.SetStyle(ControlStyles.UserPaint, true);
4 this.SetStyle(ControlStyles.ResizeRedraw, true);
相关文章推荐
- C# 解决winform界面闪屏问题
- Winform 控件多闪屏问题解决方法
- C#中使用多线程访问Winform问题解决方案
- 关于Winform中rdlc报表内存溢出问题解决方案
- Winform解决闪屏问题
- ios 点击失效、闪屏问题解决方案
- WinForm内移动、放大缩小控件出现闪屏问题的解决方法
- jquery mobile跳转闪屏问题解决方案
- winform分辨率问题解决方案
- C#中使用多线程访问Winform问题解决方案
- C#中使用多线程访问Winform问题解决方案
- 有效解决WinForm窗体背景图片导致闪屏刷新问题
- 如何在WinForm项目中调用DX诸多问题解决方案汇总!
- C#中使用多线程访问Winform问题解决方案
- C#中使用多线程访问Winform问题解决方案
- C#中使用多线程访问Winform问题解决方案
- 乌班图安装nginx中出现的一些错误问题解决方案
- 解决前端跨域问题方案汇总
- mysql打不开表问题解决方案
- VC #import "progid:MSXML2" no_namespace出现的编译问题解决方案