8

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

我有一个面板控件,我正在向其中绘制内容,还有一个所有者绘制的选项卡控件。两者都有闪烁,那么如何启用双缓冲?

4

3 回答 3

13

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

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

this.DoubleBuffered = true;
this.SetStyle(ControlStyles.UserPaint | 
              ControlStyles.AllPaintingInWmPaint |
              ControlStyles.ResizeRedraw |
              ControlStyles.ContainerControl |
              ControlStyles.OptimizedDoubleBuffer |
              ControlStyles.SupportsTransparentBackColor
              , true);
于 2008-10-20T22:28:08.350 回答
1

这里的一些信息:

如何在表单上加倍缓冲 .NET 控件?

于 2008-10-20T21:59:43.027 回答
-2

使用继承自 System.Windows.Forms.Control 的 DoubleBuffered 属性。

System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;
于 2008-10-21T09:17:48.790 回答