¿Cómo puedo habilitar el doble búfer de un control sobre el uso de C# (Windows forms)?

¿Cómo puedo activar el doble búfer de un control sobre el uso de C# (Windows forms)?

Tengo un panel de control que estoy dibujando cosas y también una dibujado por el propietario de la ficha de control. Ambos sufren de parpadeo, así que ¿cómo puedo habilitar el doble búfer?

OriginalEl autor Gary Willoughby | 2008-10-20

3 Kommentare

  1. 12

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

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

    this.DoubleBuffered = true;
    this.SetStyle(ControlStyles.UserPaint | 
                  ControlStyles.AllPaintingInWmPaint |
                  ControlStyles.ResizeRedraw |
                  ControlStyles.ContainerControl |
                  ControlStyles.OptimizedDoubleBuffer |
                  ControlStyles.SupportsTransparentBackColor
                  , true);
    simplemente haciendo esto.DoubleBuffered = true; por lo general es suficiente, buena respuesta 🙂

    OriginalEl autor David Wengier

  2. -1

    Utilizar el DoubleBuffered propiedad, herencia del Sistema.Windows.Los formularios.Control.

    System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
    myForm.DoubleBuffered = true;
    El código no compila, el DoubleBuffered se protege la propiedad. El op probablemente ha comprobado las propiedades públicas antes de poner la pregunta.

    OriginalEl autor Mats Fredriksson

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea