阅读477 返回首页    go 阿里云 go 技术社区[云栖]


双缓冲DoubleBuffered解决闪烁问题

一、使用默认的双缓冲

1 在应用程序中使用双缓冲的最简便的方法是使用 .NET Framework 为窗体和控件提供的默认双缓冲。通过将 DoubleBuffered 属性设置为 true。     

this.DoubleBuffered=true;  
使用 SetStyle 方法可以为 Windows 窗体和所创作的 Windows 控件启用默认双缓冲,在窗体或者控件的构造函数中添加如下代码即可:

SetStyle(ControlStyles.ResizeRedraw,true);
SetStyle(ControlStyles.OptimizedDoubleBuffer,true);
SetStyle(ControlStyles.AllPaintingInWmPaint,true);

二、案例——TableLayoutPanel使用双缓冲DoubleBuffered

利用反射机制修改TableLayoutPanel的Protected的DoubleBuffered属性,在窗体构造函数中加入如下代码:

tableLayoutPanel1.GetType().GetProperty("DoubleBuffered",
      System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)
      .SetValue(tableLayoutPanel1, true, null);




最后更新:2017-04-03 05:39:36

  上一篇:go ruby:借助第三方类名如何查找第三方gem名称(zlib为例)
  下一篇:go 【转】POJ 3264 线段树解法