默认的panel控件在重画时会出现闪烁的问题
解决问题的方法是在继承原有panel属性的基础上赋予它双缓冲的功能
在Form类中添加如下代码
/// <summary>
/// 双缓冲panel
/// </summary>
public class DoubleBufferPanel : Panel
{
public DoubleBufferPanel()
{
this.SetStyle(ControlStyles.AllPaintingInWmPaint | //不擦除背景 ,减少闪烁
ControlStyles.OptimizedDoubleBuffer | //双缓冲
ControlStyles.UserPaint, //使用自定义的重绘事件,减少闪烁
true);
}
}
然后找到panel控件定义和初始化的地方
将
private System.Windows.Forms.Panel panel1;
this.panel1 = new System.Windows.Forms.Panel();
private DoubleBufferPanel panel1;
改成
this.panel1 = new DoubleBufferPanel();