14-06-16, 10:48 PM
(13-06-16, 05:56 PM)الوادي كتب : يا محمد،
يللي فهمته انك تريد Form2 تكون شاشة شريط الانظار، على هذا يكون الكود
Form1
PHP كود :
Public Class Form1
Dim thr As Threading.Thread
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False
End Sub
' إبدأ الارسال '
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
thr = New Threading.Thread(AddressOf task)
thr.IsBackground = True
thr.Start()
Form2.ShowDialog()
If Not IsNothing(thr) Then thr.Abort()
End Sub
Sub task()
Try
Dim mail As New MailMessage
mail.Subject = "email"
mail.To.Add(TextBox2.Text)
mail.From = New MailAddress(TextBox2.Text)
mail.Body = "good"
Dim smtp As New SmtpClient("smtp.mail.yahoo.com")
smtp.EnableSsl = True
smtp.Credentials = New System.Net.NetworkCredential(TextBox2.Text, TextBox3.Text)
smtp.Port = "587"
smtp.Send(mail)
MsgBox("mail sent")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Me.Invoke(New FormCloseDelegate(AddressOf Form2Close))
End Sub
Delegate Sub FormCloseDelegate()
Sub Form2Close()
Form2.Close()
End Sub
End Class
Form2 وفيه زر لإلغاء العملية
PHP كود :
Public Class Form2
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
ProgressBar1.Style = ProgressBarStyle.Marquee
End Sub
' إلغاء الارسال '
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
End Class
أما الشق الثاني بخصوص استخدام الثريد،
هو أساساً مهمة مستقلة (أكيد سمعت عن تعدد المهام)
ويستخدم ليقوم بعملية معينة (في الخلفية) بينما يستمر العمل بالبرنامج (بدون تجميد)،
لكن لازم تعرف طريقة عمله بشكل صحيح.
الف شكر فعلا هذا ما اريد بالضبط

