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