Winfrom 减少控件重绘闪烁的方法

  1. Winform控件的双缓冲。控件的双缓冲属性是隐藏的,可以通过反射改变其属性值。
    lv.GetType().GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(lv, true, null);
    //lv为控件名称

     

  2. 重绘控件的时候开启控件双缓冲。
    this.SetStyle(ControlStyles.DoubleBuffer | 
    
          ControlStyles.UserPaint | 
          ControlStyles.AllPaintingInWmPaint,
          true);
    this.UpdateStyles();

     

  3. 通过消息,禁用掉清除背景的消息。(TreeView控件实用)
    protected override void WndProc(ref Message m)
      {
          if (m.Msg == 0x0014) // 禁掉清除背景消息
              return;
          base.WndProc(ref m);
      }

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值