2009-07-13 7 views
3

Jedes Mal, wenn ich die Enable-Disable-Eigenschaft der Steuerelemente in meiner WinForm ändere, wird das gesamte Formular neu gezeichnet. Ich möchte die überflüssigen Repaints vermeiden, indem ich nur neu streiche, wenn ich alle Kontrollen aktualisiert habe. Ist das möglich?Winforms-Aktualisierung deaktivieren

Antwort

4

Es gibt einige gute Tipps in this article, wie Sie mehr Kontrolle über die Neulackierung Prozess zu nehmen.

0

Dies ist eine schnelle Hack, aber ich glaube, Sie die Visible-Eigenschaft auf False des Formulars festlegen können, aktivieren/deaktivieren Sie alle Steuerelemente, und legen Sie die Visible Rücken des Formulars auf True.

Der Artikel JP Referenzen deckt eine Reihe von besseren Ansätzen.

Update: tatsächlich, welche Sprache/Plattform verwenden Sie? Ich habe gerade eine schnelle Test-App in C# erstellt, und das Festlegen der aktivierten/deaktivierten Eigenschaften bewirkt, dass nicht verursacht, das gesamte Formular neu zu streichen.

3

Winforms repaints nur den ungültigen Bereich der Steuerelemente, deren Aussehen geändert wurde. Wenn deine "ganze Form" neu gestrichen wird, machst du etwas falsch. Zeichnest du etwas außerhalb deiner Paint Event-Handler? Invalidieren Sie etwas in Ihren Paint-Ereignisbehandlungsroutinen? Tu das nicht.

Bitte geben Sie den Code ein, der dieses Problem verursacht.

+2

"Doktor, es tut weh, wenn ich das tue." "Tu das nicht." – MusiGenesis