Ich habe ein UserControl geschrieben, das sich wie ein ContainerControl verhält, aber vollständig von WindowsForms gezeichnet wird (ich erben von UserControl
)
Ich möchte es vermeiden, das Steuerelement zu malen, während ich es ausfülle, also müsste ich etwas schreiben, das ähnlich ist wie BeginUpdate()
- EndUpdate()
.
Dies ist einfach zu tun, wenn das Steuerelement vom Benutzer gezeichnet wird, aber in diesem Fall bin ich nicht sicher, wie es weitergehen soll.
Sie können das Suspend / Resume-Layout verwenden. z.B.
%Vor%Wenn Sie daran interessiert sind, das Bild eines Steuerelements und seiner Kinder auszusetzen, sehen Sie sich diese SO-Frage an: Aussetzen Kontrolle und Kinder malen
Sie können die OnPaint-Methode überschreiben und die Steuerung nur dann an die base.OnPaint () übergeben, wenn eine bestimmte Bedingung erfüllt ist.
%Vor%Dann behandeln Sie, indem Sie die Variable _doPaint mit den öffentlichen Methoden oder einer Eigenschaft auf den entsprechenden Wert setzen.
Sie müssen OnPaintBackground () je nach Bedarf möglicherweise auf ähnliche Weise überschreiben.
Tags und Links .net c# winforms user-controls paint