我建立了一个进度条类,用于显示我的 for 循环中的进度。以下是进度条类的代码:
可能重复:
.NET 进度条不更新
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(),但它会严重减慢进度,并且仍然给我相同的结果。是否有其他方法来实现更好的视觉效果进度条?