码迷,mamicode.com
首页 > 其他好文 > 详细

[C#]实现panel控件的双缓冲刷新

时间:2014-09-14 19:18:17      阅读:1114      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   ar   for   div   问题   sp   

默认的panel控件在重画时会出现闪烁的问题

解决问题的方法是在继承原有panel属性的基础上赋予它双缓冲的功能

在Form类中添加如下代码

 1 /// <summary>
 2 /// 双缓冲panel
 3 /// </summary>
 4 public class DoubleBufferPanel : Panel
 5 {
 6    public DoubleBufferPanel()
 7    {
 8       this.SetStyle(ControlStyles.AllPaintingInWmPaint | //不擦除背景 ,减少闪烁
 9            ControlStyles.OptimizedDoubleBuffer | //双缓冲
10            ControlStyles.UserPaint, //使用自定义的重绘事件,减少闪烁
11            true);
12    }
13 }

然后找到panel控件定义和初始化的地方

 1 private System.Windows.Forms.Panel panel1; 

 1 this.panel1 = new System.Windows.Forms.Panel(); 

改成

 1 private DoubleBufferPanel panel1; 

 1 this.panel1 = new DoubleBufferPanel(); 

[C#]实现panel控件的双缓冲刷新

标签:style   blog   color   使用   ar   for   div   问题   sp   

原文地址:http://www.cnblogs.com/shenbimanong/p/3971342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!