منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعدة في..listbox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
سلام عليكم

اريد من الاخوة مساعدتي
في 
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 ObjectAs EventArgsHandles Button1.Click
        BackgroundWorker1
.RunWorkerAsync()
 
       Control.CheckForIllegalCrossThreadCalls False
    End Sub

    Private Sub BackgroundWorker1_DoWork
(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles BackgroundWorker1.DoWork
        Dim i
As Byte
        For Each itm 
As String In ListBox1.Items
            TextBox1
.Text itm
            If i 
1 Then Threading.Thread.Sleep(6000) : 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
(22-06-19, 11:08 AM)e-coder كتب : [ -> ]ممتاز اخ سامي محمد


ولكن اريد مسح الاسماء التي وضعت في 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 ObjectAs EventArgsHandles Button1.Click
        BackgroundWorker1
.RunWorkerAsync()
 
       Control.CheckForIllegalCrossThreadCalls False
    End Sub

    Private Sub BackgroundWorker1_DoWork
(sender As ObjectAs System.ComponentModel.DoWorkEventArgsHandles BackgroundWorker1.DoWork
        Dim i
As Byte
        For Each itm 
As String In ListBox1.Items
            TextBox1
.Text itm
            If i 
1 Then Threading.Thread.Sleep(6000) : x
            i 
+= 1
        Next
        MsgBox
("end")
 
   End Sub 


الملف في مرفقات
وشكرا


(لست مبرمج VB.NET)

تعديل
كود :
Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork
   Dim i As Byte
   Do While ListBox1.Items.Count > 0
       TextBox1.Text = ListBox1.Items(0)
       ListBox1.Items.RemoveAt(0)
       If i = 10 Then Threading.Thread.Sleep(6000) : i = 0
       i += 1
       Threading.Thread.Sleep(100)
   Loop
   TextBox1.Clear()
End Sub
الصفحات : 1 2