Potřebujeme-li ve WinForms vícenásobně překreslovat panel, setkáme se s největší pravděpodobností s blikáním našeho kresleného obrazu. Je to způsobeno tím, že obraz se vykresluje postupně a navíc relativně pomalu. Abychom se tomu vyhnuli musíme použít double buffering.

Vydědíme si tedy z panelu novou třídu, která bude mít double buffering aktivovaný a budeme ji používat namísto původního panelu.

C#:
public class DoubleBufferedPanel : Panel
{
    public DoubleBufferedPanel()
    {
        this.DoubleBuffered = true;
        this.SetStyle(ControlStyles.DoubleBuffer |
          ControlStyles.UserPaint |
          ControlStyles.AllPaintingInWmPaint, true);
        this.UpdateStyles();
    }
}