BeginUpdate () EndUpdate für ein Benutzersteuerelement

8

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.

    
Daniel Peñalba 14.02.2011, 15:39
quelle

2 Antworten

11

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

    
George Johnston 14.02.2011, 15:44
quelle
1

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.

    
Craigt 14.02.2011 15:46
quelle