Imports system.ComponentModel Public Class Form1 Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click Try BackgroundWorker1.RunWorkerAsync() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Try Dim bgw As BackgroundWorker = TryCast(sender, BackgroundWorker) Application.CurrentCulture = New System.Globalization.CultureInfo("en-GB") Dim intupdate As Integer = 0 Dim max As Double = 100000 For i As Integer = 0 To max 'ถ้ามีการ Cancel ให้ยกเลิก If Me.BackgroundWorker1.CancellationPending = True Then Me.BackgroundWorker1.CancelAsync() Exit Sub End If intupdate = CInt((i / max) * 100) If intupdate > 12 Then Dim asss As String = "" End If Me.ShowProgress(intupdate, bgw, e) Next Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Function ShowProgress(ByVal Pvalue As Integer, ByVal wk As BackgroundWorker, ByVal e As DoWorkEventArgs) As Boolean Try If Not wk.CancellationPending Then If Pvalue >= 100 Then Pvalue = 100 wk.ReportProgress(Pvalue) Return True Else wk.ReportProgress(0) Return False End If Catch ex As Exception Throw ex End Try End Function Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged Try ProgressBar1.Value = e.ProgressPercentage Label1.Text = "ระบบกำลังประมวลผล... " & CStr(e.ProgressPercentage) & "%" Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted Try If e.Error Is Nothing Then ProgressBar1.Value = 0 Label1.Text = "ประมวลผลเรียบร้อย" MessageBox.Show(" Process End Time : [" & Now.ToString() & "]") Else MsgBox(String.Format("Work fail with error: {0}", e.Error.Message)) End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click Try If Me.BackgroundWorker1.CancellationPending = False Then Me.BackgroundWorker1.CancelAsync() End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub End Class
11 เมษายน 2555
การใช้งาน Progress Bar VB.Net
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
0 ความคิดเห็น:
แสดงความคิดเห็น