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

本文关键字:控件 启用 缓冲 窗体 何使用 Windows | 更新日期: 2023-09-27 17:47:21

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

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

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

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

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

this.DoubleBuffered = true;
this.SetStyle(ControlStyles.UserPaint | 
              ControlStyles.AllPaintingInWmPaint |
              ControlStyles.ResizeRedraw |
              ControlStyles.ContainerControl |
              ControlStyles.OptimizedDoubleBuffer |
              ControlStyles.SupportsTransparentBackColor
              , true);

这里有一些信息:

如何在表单上双重缓冲 .NET 控件?

使用继承

自 System.Windows.Forms.Control 的 DoubleBuffered 属性。

System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;