2009-08-05 9 views
2

Ich muss die Steuerelemente im Formular aktualisieren, dafür verwende ich this.Refresh(), aber das Formular flackert. Wie kann ich die Steuerelemente problemlos aktualisieren?Aktualisieren Sie alle Steuerelemente auf dem Formular

Mit Application.DoEvents() tut dies reibungslos, aber ist das eine gute Idee, mit Application.DoEvents() zu aktualisieren?

Antwort

0

Wenn das Formular flackert, bedeutet das, dass es bereits viele Updates erhält, die es neu streichen lassen.

Sie sollten Profil wenn möglich zu sehen, was verursacht alle Updates und versuchen und einige ausschneiden, da es eindeutig Duplikate werden.

Wenn möglich, Hintergrundoperationen in einen asynchronen Thread umwandeln - aber vergessen Sie nicht, den UI-Thread erneut aufzurufen, um die aktuellen Steuerelemente zu aktualisieren.

Als beste Methode ist es im Allgemeinen am besten zu vermeiden, die Nachrichtenschleife zu pumpen (d. H. Aufruf von Application.DoEvents()), weil es nicht nur zu übermäßiges Malen und mehr Flimmern führen kann. Denken Sie daran, dass es die Verarbeitung ALLER Ereignisse erzwingt, nicht nur das Malen von Einsen.

2

Form.ActiveForm.Update();

Verwandte Themen