Public Class Form1
Public mn As Integer = 0
Public mx As Integer = 100
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
M_sgbox.Top = Me.Bottom
M_sgbox.Left = Me.Left
If b1.IsBusy = False Then
b1.RunWorkerAsync()
End If
M_sgbox.ShowDialog()
End Sub
Private Sub b1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles b1.DoWork
Button1.Invoke(Sub() Button1.Enabled = False)
For i As Integer = mn To mx
b1.ReportProgress(i)
Threading.Thread.Sleep(50)
Next
End Sub
Private Sub b1_ProgressChanged(sender As Object, e As System.ComponentModel.ProgressChangedEventArgs) Handles b1.ProgressChanged
M_sgbox.ProgressBar1.Value = (e.ProgressPercentage / mx) * 100
End Sub
Private Sub b1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles b1.RunWorkerCompleted
Button1.Invoke(Sub() Button1.Enabled = True)
M_sgbox.Close()
End Sub
End Class