Musisz wywodzić się z Panelu lub PictureBox.
Istnieją konsekwencje tego działania w zależności od sposobu włączenia buforowania.
Jeśli ustawisz flagę This.DoubleBuffer, powinieneś być w porządku.
Jeśli ręcznie aktualizujesz style, musisz samemu pomalować formularz w WM_PAINT.
Jeśli naprawdę czujesz się ambitny, możesz zachować i narysować własny bufor zwrotny jako bitmapę.
using System.Windows.Forms;
public class MyDisplay : Panel
{
public MyDisplay()
{
this.DoubleBuffered = true;
// or
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
}
}
Panel * does * ma właściwość DoubleBuffered (JP powiązany z dokumentem dla niej). Należy pamiętać, że właściwość jest chroniona, dlatego nie można się do niej dostać. Utwórz podklasę panelu i ustaw ją w konstruktorze. – Andy
Być może nie jest to problem dla innych, ale ustawienie wartości w 'InitializeComponent' powoduje awarię projektanta; jak wspomniano przez @Andy, zrób to w konstruktorze. – Dan