C#使用双缓存减少界面闪烁


场景:一个panel中动态加载多个自定义控件item,类似QQ聊天窗口

问题:加载panel时界面会卡顿,先显示阴影再显示界面;移动滚动条时item会闪烁

解决方法:

panel 添加方法,减少界面闪烁:

protected override CreateParams CreateParams
{
    get
    {
         CreateParams cp = base.CreateParams;
         cp.ExStyle |= 0x02000000;
         return cp;
    }  
}

item构造函数中添加代码,减少移动滚动条时闪烁:

//构造函数
public item()
{
    SetStyle(
          ControlStyles.AllPaintingInWmPaint |    //不闪烁
          ControlStyles.OptimizedDoubleBuffer    //支持双缓存
    ,true);
    InitializeComponent();
}

网络限制不能复制,代码手打的,可能拼写有错

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM