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.
