06-10-12, 10:42 PM
بالطبع اتضحت الرؤيا لك الآن أكثر وأكثر
تعال نزيد من بعض التلميحات حول الموضوع
نضع هذه الخصائص فى حدث تحميل الفورم
لقد أزدنا فى حدث التحميل أن نشطنا خاصية WorkerSupportsCancellation للعنصر
==========================================
نجعل الكود للحدث DoWork
============================================
الحدث ProgressChanged كما هو
================================================
جاء دور حدث جديد وهو RunWorkerCompleted ويتم فى حالة المهمة انتهت أو توقفت
الكود واضح وما يحتاج شرح
=====================================
حدث الزر Button2 الخاص بالغاء العملية
شغل التطبيق واستمتع
تعال نزيد من بعض التلميحات حول الموضوع
نضع هذه الخصائص فى حدث تحميل الفورم
كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.BackgroundWorker1.WorkerReportsProgress = True
Me.BackgroundWorker1.WorkerSupportsCancellation = True
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = 100
End Subلقد أزدنا فى حدث التحميل أن نشطنا خاصية WorkerSupportsCancellation للعنصر
كود :
Me.BackgroundWorker1.WorkerSupportsCancellation = True==========================================
نجعل الكود للحدث DoWork
كود :
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For I As Integer = 0 To 100
If Me.BackgroundWorker1.CancellationPending Then
e.Cancel = True
Return
End If
Me.BackgroundWorker1.ReportProgress(I)
System.Threading.Thread.Sleep(100)
Next
End Sub============================================
الحدث ProgressChanged كما هو
كود :
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
Me.ProgressBar1.Value = e.ProgressPercentage
End Sub================================================
جاء دور حدث جديد وهو RunWorkerCompleted ويتم فى حالة المهمة انتهت أو توقفت
كود :
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As System.Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
If Not (e.Error Is Nothing) Then
MessageBox.Show("حدث خطأ")
ElseIf e.Cancelled Then
MessageBox.Show("تم الالغاء")
Else
MessageBox.Show("تمت العملية")
End If
End Sub=====================================
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.ProgressBar1.Value = 0
Me.BackgroundWorker1.RunWorkerAsync()
End Subحدث الزر Button2 الخاص بالغاء العملية
كود :
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Me.BackgroundWorker1.IsBusy Then
Me.BackgroundWorker1.CancelAsync()
End If
End Subشغل التطبيق واستمتع
