Form ständig neu zeichnen, aber wie?

22/08/2007 - 10:07 von Marc | Report spam
Hallo,

ich möchte eine Form stàndig neu zeichnen und neu positionieren.

Ich mache folgendes:

this.BackgroundImage = bm;
this.Region = r;
this.Location = new ...

Anscheinend wird bei jedem Funktionsaufruf automatisch ein Invalidate()
ausgelöst (zumindest bei den ersten beiden).

Wie kann ich das am geschicktesten anstellen, um möglichst wenig
Performance zu verbraten?
Gibt es evtl. eine Funktion die ich vor allen Änderungen aufrufen kann
und anschließend wieder, um die Änderungen sozusagen als Packet zu haben?

Hilft mir SuspendLayout/ResumeLayout? Einen Performancegewinn habe ich nicht
bemerken können!

Grüße
Marc
 

Lesen sie die antworten

#1 Dominik A. Ernst
22/08/2007 - 17:36 | Warnen spam
Hi,

kannst du dein Problem genauer beschreiben. Entweder zeichnest du die Form
stàndig neu (-> Performance) oder nicht.
Evtl. siehst du dir mal "Override OnPaint" an ...

Gruß,
Dominik
www.dae-edv.de


"Marc" wrote:

Hallo,

ich möchte eine Form stàndig neu zeichnen und neu positionieren.

Ich mache folgendes:

this.BackgroundImage = bm;
this.Region = r;
this.Location = new ...

Anscheinend wird bei jedem Funktionsaufruf automatisch ein Invalidate()
ausgelöst (zumindest bei den ersten beiden).

Wie kann ich das am geschicktesten anstellen, um möglichst wenig
Performance zu verbraten?
Gibt es evtl. eine Funktion die ich vor allen Änderungen aufrufen kann
und anschließend wieder, um die Änderungen sozusagen als Packet zu haben?

Hilft mir SuspendLayout/ResumeLayout? Einen Performancegewinn habe ich nicht
bemerken können!

Grüße
Marc

Ähnliche fragen