VB.NET-Fortschrittsbalken [duplizieren]
Mögliche Duplikate:
.NET-Fortschrittsbalken wird nicht aktualisiert
Ich habe eine Fortschrittsbalkenklasse erstellt, die den Fortschritt in meinen for-Schleifen anzeigt. Hier ist der Code für die Fortschrittsbalkenklasse:
Public Class frmProgress
Private Sub frmProgress_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
progressBar.Minimum = 0
End Sub
Public Sub ProgressBarSetup(ByRef Maximum As Integer, ByRef Title As String)
progressBar.Maximum = Maximum
progressBar.Value = 0
Me.Text = Title
Me.Show()
End Sub
Public Sub IncProg()
progressBar.Value += 1
Application.DoEvents()
If progressBar.Value = progressBar.Maximum Then
Me.Close()
End If
End Sub
End Class
So würde ich es in einer for-Schleife verwenden:
Dim pb As New ProgressBar
pb.ProgressBarSetup(5000, "Test")
For i As Integer = 0 To 5000 - 1
pb.IncProg()
Next
Das Problem ist ein visuelles Problem. Es macht bis zu 70-85% des gesamten Fortschrittsbalkens aus und wird dann geschlossen. Beim Schließen sind der Fortschrittsbalkenwert und der Maximalwert gleich, der Balken ist jedoch nur zu etwa drei Vierteln seiner Länge gefüllt.
Ich habe versucht, progressBar.Refresh () anstelle von Application.DoEvents () zu verwenden, aber es verlangsamt den Fortschritt um ein Vielfaches - und gibt mir immer noch das gleiche Ergebnis.
Gibt es andere Möglichkeiten, eine optisch ansprechende Fortschrittsanzeige zu erzielen?