Frage

Wie kann ich ermöglichen Double-Buffering einer Steuerung mit C # (Windows Forms)?

Ich habe ein Panel-Steuerelement, das ich Sachen bin Zeichnung in und auch ein Ownerdrawn-Registerkarte. Beide leiden unter Flimmern, so wie kann ich Double-Buffering aktivieren?

War es hilfreich?

Lösung

Im Konstruktor Ihrer Kontrolle, setzen Sie die Eigenschaft DoubleBuffered und / oder Control angemessen.

Zum Beispiel, ich habe eine einfache DoubleBufferedPanel dessen Konstruktor ist die folgende:

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

Andere Tipps

Verwenden Sie die Eigenschaft DoubleBuffered vom System.Windows.Forms.Control geerbt.

System.Windows.Forms.Form myForm = new System.Windows.forms.Form();
myForm.DoubleBuffered = true;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top