ColinOL

A Small Website

用户工具

站点工具


wiki:csharp:winform-kjss-clbf

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

wiki:csharp:winform-kjss-clbf [2018/02/03 15:42] (当前版本)
行 1: 行 1:
 +====== 控件闪烁处理办法 ======
 +
 +就是在这个窗体的构造函数中增加以下三行代码:
 +请在构造函数里面底下加上如下几行:
 +
 +<code csharp>
 +SetStyle(ControlStyles.UserPaint,​ true);
 +SetStyle(ControlStyles.AllPaintingInWmPaint,​ true); // 禁止擦除背景.
 +SetStyle(ControlStyles.DoubleBuffer,​ true); // 双缓冲
 +</​code>​
 +
 +参数说明:
 +
 +  UserPaint ​
 +  如果为 true,控件将自行绘制,而不是通过操作系统来绘制。此样式仅适用于派生自 Control 的类。
 +  ​
 +  AllPaintingInWmPaint ​
 +  如果为 true,控件将忽略 WM_ERASEBKGND 窗口消息以减少闪烁。仅当 UserPaint 位设置为 true 时,才应当应用该样式。 ​
 +  ​
 +  DoubleBuffer ​
 +  如果为true,则绘制在缓冲区中进行,完成后将结果输出到屏幕上。双重缓冲区可防止由控件重绘引起的闪烁。要完全启用双重缓冲,还必须将 UserPaint 和 AllPaintingInWmPaint 样式位设置为 true。
 +
  
wiki/csharp/winform-kjss-clbf.txt · 最后更改: 2018/02/03 15:42 (外部编辑)