سلام عليكم
اريد من الاخوة مساعدتي
في
listbox
اريد عند وصل
الخانه الثالثة او الرابعه في لست بوكس
ان يتوقف تايمر
ويعاود التايمر تشغيل نفسه بعد دقيقة
ومن ثم تكملة الاسماء في لست بوكس
مثال
1
2
3
4
يتوقف هنا ويستأنف بعد دقيقة
5
6
7
8
يتوقف هنا ويستأنف بعد دقيقة
9
10
11
12
13
يتوقف هنا ويستأنف بعد دقيقة
وهكذا
وشكرا
وعليكم السلام ورحمة الله وبركاته
انت لا تحتاج لوجود Timer
فى عمل هذا الكود لفكرة الدقيقة
بهذه الطريقة انت تعمل مشكلة كبيرة ستادى
الى ان يكون البرنامج معلق ولا يعمل
لكونه يقوم بتنفيذ كود وليكن For متعدد المرات
كلما بداء Timer فى التحديث
كل ما تحتاج فعله هو استخدام هذا الكود
كود :
Threading.Thread.Sleep(60000)
ولتنفيذ هذا السطر من الكود كل 4 تمريرة
فكل ما عليك فعله ان تجعل وضع الكود التالى
فى اى حدث مثل زر او ما شبه وليس
Timer
كود :
Dim i, ii As Integer
For Each itm As String In ListBox1.Items
i += 1
MsgBox(itm)
If i = ii + 4 Then
ii = i
Threading.Thread.Sleep(60000)
End If
Next
اذا كنت تريد كل 3 بدلاً من 4
فقط غير رقم 4 فى سطر IF الى 3
ودائماً اجعل كود شطر IF نهاية الكود المطلوب تنفيذه
كما هو مبين فى الكود بالاعلى
نفس الكود بطريقة اخري
كود :
Dim i, ii As Integer
For iii As Integer = 0 To ListBox1.Items.Count - 1
i += 1
MsgBox(ListBox1.Items(iii))
If i = ii + 4 Then
ii = i
Threading.Thread.Sleep(2000)
End If
Next
تحياتى لك
وتمنياتى لك التوفيق
السلام عليكم اخي الكريم
تفضل نفس الكود في مثال
ملاحظة جعلت زمن التوقف 6 ثواني حتى يتضح لك الامر
بدون تعقيب على الأخوة الكرام
-----
لكي لا يعلق البرنامج الافضل وضع الامر في BackgroundWorker ولفعل ذلك اضف هذه الاداة اولا واليك الاكواد
----
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
Control.CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim i As Byte
For x As Integer = 0 To 100
If i = 4 Then Threading.Thread.Sleep(6000) : i = 0
ListBox1.Items.Add(x + 1)
i += 1
Next
End Sub
ممتاز اخ سامي محمد
ولكن اريد مسح الاسماء التي وضعت في textbox
من listbox
حاولت وضع كود تالي لمسح الاسماء التي استخدمت ولم تنجح
Me.ListBox1.Select()
Me.ListBox1.Items.RemoveAt(0)
Me.ListBox1.SelectedIndex = 0
الفكرة اخي
ان الاسماء في لست بوكس
تأتي في Textbox
وعند وصول الاسم 10 رقم عشرة
يتوقف ويعاود تكرار المحاولة لاسماء جديدة غير الاسماء التي
وضعها في Textbox سابقاً
بوقت زمني لا يقل عن 3 دقائق
مع مسح الاسماء التي استخدمت
PHP كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
Control.CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Dim i, x As Byte
For Each itm As String In ListBox1.Items
TextBox1.Text = itm
If i + x = 1 Then Threading.Thread.Sleep(6000) : i = x
i += 1
Next
MsgBox("end")
End Sub
الملف في مرفقات
وشكرا
أعتقد أنك تريده بهذه الطريقة
كود :
Dim i, x As Byte
Dim Cont As Integer = ListBox1.Items.Count - 1
Dim M As Integer
For c As Integer = 0 To Cont
If i + x = 10 Then
TextBox1.Text = ListBox1.Items(c - M)
ListBox1.Items.RemoveAt(c - M)
M += 1
Threading.Thread.Sleep(6000)
i = 0
End If
i += 1
Next