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?

Foi útil?

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

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
scroll top