重複の可能性:
.NET プログレスバーが更新されない
for ループの進行状況を示すプログレス バー クラスを作成しました。プログレス バー クラスのコードは次のとおりです。
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% まで完了してから閉じます。閉じると、プログレス バーの値と最大値は等しくなりますが、バーはその長さの約 4 分の 3 までしか満たされていません。
Application.DoEvents() の代わりに progressBar.Refresh() を使用してみましたが、進行が大幅に遅くなり、それでも同じ結果が得られます。
視覚的に魅力的な進行状況バーを実現する他の方法はありますか?