Powiel możliwe:
.NET progressbar not updatingVB.NET Progress Bar
Zbudowałem postępu klasę bar, który pokazuje postęp w moim pętli. Oto kod dla klasy pasek postępu:
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
Oto jak chciałbym użyć go w pętli for:
Dim pb As New ProgressBar
pb.ProgressBarSetup(5000, "Test")
For i As Integer = 0 To 5000 - 1
pb.IncProg()
Next
Zagadnienie to problem wizualne. Uzupełnia do 70-85% pełnego paska postępu, a następnie zamyka się. Po zamknięciu wartość paska postępu i wartości maksymalne są równe, ale pasek jest wypełniony tylko do około trzech czwartych jego długości.
Próbowałem używać progressBar.Refresh() zamiast Application.DoEvents(), ale spowalnia to działanie o wiele - i nadal daje mi taki sam wynik.
Czy istnieją inne sposoby na uzyskanie lepszego wizualnie paska postępu?
Dobra, spróbuję tego. i Tak, zapomniałem umieścić 5000-1: p Był to tylko przykład. Dzięki! Pójdę i spróbuję tego teraz. – Alex
Idealny. To działa! Doskonały. Przyjmuję odpowiedź, gdy tylko strona mnie pozwoli :) Bardzo doceniam! – Alex
dziękuję! To doprowadzało mnie do szału, ustawiłem na 50 (%), a to tylko do 1/3 ... – Sebastian