Como faço para ativar o buffer duplo de um controle usando C # (Windows Forms)?
-
03-07-2019 - |
Pergunta
Como faço para ativar o buffer duplo de um controle usando C # (formulários do Windows)?
Eu tenho um painel de controle que estou desenhando coisas para dentro e também um controle guia desenho proprietário. Ambos sofrem de cintilação, assim como eu posso permitir que double-buffering?
Solução
No construtor de seu controle, defina a propriedade DoubleBuffered, e / ou ControlStyle de forma adequada.
Por exemplo, eu tenho um simples DoubleBufferedPanel cujo construtor é o seguinte:
this.DoubleBuffered = true;
this.SetStyle(ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.ResizeRedraw |
ControlStyles.ContainerControl |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.SupportsTransparentBackColor
, true);
Outras dicas
algumas informações aqui:
Use a propriedade DoubleBuffered, herdada do System.Windows.Forms.Control.
System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow