Как включить двойную буферизацию элемента управления с помощью C# (Windows forms)?
Как включить двойную буферизацию элемента управления с помощью C# (Windows forms)?
У меня есть панель управления, в которую я рисую материал, а также элемент управления вкладкой, нарисованный владельцем. Оба страдают от мерцания, так как я могу включить двойную буферизацию?
3 ответов
в конструкторе элемента управления задайте свойство DoubleBuffered и/или ControlStyle соответствующим образом.
например, у меня есть простой DoubleBufferedPanel, конструктор которого следующий:
this.DoubleBuffered = true;
this.SetStyle(ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.ResizeRedraw |
ControlStyles.ContainerControl |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.SupportsTransparentBackColor
, true);
используйте свойство DoubleBuffered, унаследованное от системы.Окна.Формы.Управление.
System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;