如何使用C#(Windows窗体)启用控件的双缓冲?

Gar*_*hby 8 .net c# doublebuffered ownerdrawn winforms

如何使用C#(Windows窗体)启用控件的双缓冲?

我有一个面板控件,我正在绘制内容,也是一个所有者绘制的选项卡控件.两者都有闪烁,所以如何启用双缓冲?

Dav*_*ier 12

在控件的构造函数中,适当地设置DoubleBuffered属性和/或ControlStyle.

例如,我有一个简单的DoubleBufferedPanel,其构造函数如下:

this.DoubleBuffered = true;
this.SetStyle(ControlStyles.UserPaint | 
              ControlStyles.AllPaintingInWmPaint |
              ControlStyles.ResizeRedraw |
              ControlStyles.ContainerControl |
              ControlStyles.OptimizedDoubleBuffer |
              ControlStyles.SupportsTransparentBackColor
              , true);
Run Code Online (Sandbox Code Playgroud)

  • 简单地做这个.DoubleBuffered = true; 一般来说,虽然很好的答案:) (2认同)