解决winform窗体闪烁问题
2015-08-07 10:03
218 查看
如果你在Form中绘图的话,不论是不是采用的双缓存,都会看到图片在更新的时候都会不断地闪烁,解决方法就是在这个窗体的构造函数中增加以下三行代码:
请在构造函数里面底下加上如下几行:
参数说明:
UserPaint
如果为 true,控件将自行绘制,而不是通过操作系统来绘制。此样式仅适用于派生自 Control 的类。
AllPaintingInWmPaint
如果为 true,控件将忽略 WM_ERASEBKGND 窗口消息以减少闪烁。仅当 UserPaint 位设置为 true 时,才应当应用该样式。
DoubleBuffer
如果为 true,则绘制在缓冲区中进行,完成后将结果输出到屏幕上。双重缓冲区可防止由控件重绘引起的闪烁。要完全启用双重缓冲,还必须将 UserPaint 和 AllPaintingInWmPaint 样式位设置为 true。
请在构造函数里面底下加上如下几行:
SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetStyle(ControlStyles.DoubleBuffer, true); // 双缓冲
参数说明:
UserPaint
如果为 true,控件将自行绘制,而不是通过操作系统来绘制。此样式仅适用于派生自 Control 的类。
AllPaintingInWmPaint
如果为 true,控件将忽略 WM_ERASEBKGND 窗口消息以减少闪烁。仅当 UserPaint 位设置为 true 时,才应当应用该样式。
DoubleBuffer
如果为 true,则绘制在缓冲区中进行,完成后将结果输出到屏幕上。双重缓冲区可防止由控件重绘引起的闪烁。要完全启用双重缓冲,还必须将 UserPaint 和 AllPaintingInWmPaint 样式位设置为 true。
相关文章推荐
- HDU2.1.1 最小公倍数
- 南邮 OJ 1919 我的故事
- split 分割 字符串(分隔符如:* ^ : | , .) 及注意点
- 数据库表转javaBean
- win2008远程桌面会话数增加
- seinfo
- 深刻理解Linux进程间通信(IPC)
- mysql中自定义函数编程
- Oracle VM VirtualBox VBoxDD.Dll GetLastError=1790 错误处理方法
- 最近项目中用hibernate分页查询的底层方法
- Bluetooth Keyboard Replace
- java中Collections.sort排序详解
- [区间合并,优化] hdu5358多校联合 第六场 First one
- js 关于在子类构造函数中加入call(this)的用意!
- Web前端开发大系概览 (迄今为止最全的互联网前端开发技术栈)
- 记忆存储的生理单元
- 南邮 OJ 1917 松牛的故事1
- 南邮 OJ 1916 贲神的故事2
- svn linux命令
- iOS开发 - XCode设置断点与编辑断点