Индикатор прогресса VB.NET [дубликат]
Возможный дубликат:
Прогресс .NET не обновляется
Я построил класс индикатора выполнения, который показывает прогресс в моих циклах for. Вот's код для класса индикатора выполнения:
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
Вот'Как бы я использовал его в цикле for:
Dim pb As New ProgressBar
pb.ProgressBarSetup(5000, "Test")
For i As Integer = 0 To 5000 - 1
pb.IncProg()
Next
Проблема является визуальной проблемой. Он завершает до 70-85% от всего индикатора выполнения и затем закрывается. При закрытии значение индикатора выполнения и максимальные значения равны, но столбец заполнен только примерно на три четверти его ».длина.
Я попытался использовать progressBar.Refresh () вместо Application.DoEvents (), но это сильно замедляет прогресс и все равно дает мне тот же результат.
Есть ли другие способы добиться лучшего визуально привлекательного индикатора выполнения?