Aktualisieren des Form

26/01/2009 - 12:57 von Maximilian Tescher | Report spam
Hallo,

wie kann ich den beim durchlauf einer grossen Schleife (darin wird
auch eine ListBox mit Daten versogrt) erreichen das die Eintràge
gleich angezeigt werden und nicht erst dann wenn die Schleife beendet
ist?

Vielen Dank für Eure Infos,
Maxi
 

Lesen sie die antworten

#1 Carsten Unterberg
26/01/2009 - 13:42 | Warnen spam
Hallo Maximilian,

"Maximilian Tescher" schrieb im Newsbeitrag
news:
Hallo,

wie kann ich den beim durchlauf einer grossen Schleife (darin wird
auch eine ListBox mit Daten versogrt) erreichen das die Eintràge
gleich angezeigt werden und nicht erst dann wenn die Schleife beendet
ist?



um die Ansicht in der ListBox zu aktualisieren, rufe in der Schleife
entweder die Methode 'Refresh' oder die Methode 'Application.DoEvents' auf.
'Refresh' aktualisiert nur das jeweilige Steuerelement,
'Application.DoEvents' aktualisiert u.a. die gesamte Form und führt
zusàtzlich noch weitere Funktionen im Hintergrund aus.
Da beide Methoden sich negativ auf die Performance auswirken, rufe ich. z.B.
die jeweilige Methode nicht bei jedem Durchlauf auf, sondern nur alle x. Mal


Beispiel:

Dim Index As System.Int32 = 0
Dim Counter As System.Int32 = 0
''Schleife mit 10000 Durchlaeufen
For Index = 0 To 10000

''Eintrag hinzufuegen
Me.ListBox1.Items.Add(Index.ToString())

''Counter hochzaehlen
Counter = Counter + 1

''Counter pruefen
If Counter = 10 Then

''andere Programme ausfuehren
System.Windows.Forms.Application.DoEvents()

''Counter zuruecksetzen
Counter = 0

End If

Next


Weitere Informationen findest Du hier:

[ListBox.Refresh-Methode]
http://msdn.microsoft.com/de-de/lib...8e7x3.aspx

[Application.DoEvents-Methode]
http://msdn.microsoft.com/de-de/lib...vents.aspx


MfG

Carsten Unterberg | Test-Framework
http://test-framework.blogspot.com/

Ähnliche fragen