BRAINDUMP: Repaint ohne Flackern in Windows Forms

Wer wie ich komplexe Windows Forms Applikationen schreibt, die dann auch noch – auf speziellen Kundenwunsch hin – transparente Controls o.ä. verwenden, der kennt das Problem: Bei jedem Repaint, Resize oder Paint flackert der Bildschirm, dass es unerträglich ist.

Die einfachste Abhilfe schafft

DoubleBuffered = True

bei allen Formularen und Container-Controls. Zusätzlich (weil gerne auch Controls flackern, die über diese Eigenschaft nicht verfügen), sollte folgender Code in den Konstruktor (VB):

SetStyle(ControlStyles.UserPaint Or _
   ControlStyles.DoubleBuffer Or _
   ControlStyles.AllPaintingInWmPaint, True)

In C# siehts so ähnlich aus:

SetStyle(ControlStyles.UserPaint |
   ControlStyles.DoubleBuffer |
   ControlStyles.AllPaintingInWmPaint, true);

Das geht bei allen Controls, ggf. muss man halt eine Ableitung machen. Und dann beschwert sich auch kein Kunde mehr.

No Comment

Comments are closed.