¿Cómo habilito el almacenamiento en búfer doble de un control usando C # (formularios de Windows)?

StackOverflow https://stackoverflow.com/questions/220100

Pregunta

¿Cómo habilito el almacenamiento en búfer doble de un control utilizando C # (formularios de Windows)?

Tengo un control de panel en el que estoy dibujando cosas y también un control de pestaña dibujado por el propietario. Ambos sufren de parpadeo, entonces, ¿cómo puedo habilitar el doble búfer?

¿Fue útil?

Solución

En el constructor de su control, establezca la propiedad DoubleBuffered y / o ControlStyle de forma adecuada.

Por ejemplo, tengo un DoubleBufferedPanel simple cuyo constructor es el siguiente:

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

Otros consejos

Utilice la propiedad DoubleBuffered, heredada de System.Windows.Forms.Control.

System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top