Neuzeichnen lässt sich nicht verhindern...

sTEk

Erfahrenes Mitglied

Irgendwie ist heute der Wurm drin! :(

Ich zeichen dynamisch einiges an Label-n und PictureBox-en. Wenn ich das so durchrattern lasse, braucht der Rechner eine kleine Ewigkeit zum Generieren der Objekte auf dem Bildschirm. Mir ist dabei klar, dass es etwas mit dem seriellen gezeichne und immer wieder refreshen zu tun hat - leider kann ich das nicht unterbinden.

Ich habe schon einmal die Überschreibung von OnPaint gewagt. Ich lasse base.OnPaint(e); nur aufrufen, wenn eine bool-Variable gesetzt ist.
Dummerweise zeichnet er trotzdem weiter, also hab ich da wohl nen Fehler gemacht.

Kann ich nicht einfach sagen, dass er den gesamten Inhalt des Forms eine Weile nicht zeichnen soll?
 
Zuletzt bearbeitet:
Hi

Control.SuspendLayout und Control.ResumeLayout könnten dir vielleicht weiterhelfen.

PS: Das Thema hatten wir schon ein paar mal ;)
 
Danke Dir!
Ich hatte gesucht, dummerweise mit einem ganz falschen Ansatz (oder dem zu speziellen?;)) - und dann gerate ich auch noch an die QS. *fg*

Gut - zurück zum Thema. Etwas Besserung ist eingetreten, ich habe zusätzlich noch das DoubleBuffered eingeschaltet.
Dummerweise zeichnet er immernoch alles während der Erstellung! :confused:

Ich habe das SuspendLayout() sowohl vor dem Aufruf der Erstellungsfunktion (die befindet sich in einer anderen Klasse) wie auch in dieser vor jeder Erstellung (Textboxen und Picture; musste das SuspendLayout() über einen "Zeiger" [wie heißt das bei C#?] auf mein Form aufrufen) ausprobiert. Irgendwie klappt das nicht. Da ich die Textboxen zunächst an der Koordinate 0,0 erstelle und am Ende aller Erstellungen jede an ihren Platz rücke kann ich sehr genau sehen, ob wirklich erst nach allem gezeichnet wird. Aber dem ist nicht so. Ich sehe erst die Boxen links oben entstehen und dann am eigentlichen Platz...

Komisch ist zudem auch, dass ich über Control. kein Suspend oder Resume habe. Lediglich mein Grund-Form kennt die beiden Kommandos (über this.)...und das ist ein Form wie Visual Studio es erstellt:

Code:
public partial class Form1 : Form
 
Zuletzt bearbeitet:
Zurück