تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: ListBox
#1
الأداة : ListBox

لقد قمنا بشرح الأداة CheckBox من حيث النقاط الهامة وحان دور شرح الأداة ListBox

وهي مثلها فهي تحمل عدة عناصر لكن بصورة ظاهرة للمستخدم

تفيد فى مجموعة اختيارات - مثلا المستخدم أن يحدد الأصناف مثلاً


===================================


الأداة تعمل حاضنة كنطاق

مثل فكرة ComboBox تعمل كحاضنة لمجموعة من TextBox فى صورة عناصر لها فهرس


ضع الأداة ListBox من صندوق الأدوات واضبطها على الفورم

اكتب فى حدث التحميل للفورم هذا الكود


كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


ListBox1.Items.Add("A")
        ListBox1.Items.Add("B")
        ListBox1.Items.Add("C")
        ListBox1.Items.Add("D")
        ListBox1.Items.Add("E")


    End Sub

ما قمنا به هو أننا أضفنا عناصر للأداة ListBox عن طريق الخاصية Item واستخدام Add

الأمر كما نري مثل ComboBox ويمكن القيام بذلك عن طريق نافذة الخصائص للأداة واستخدام الخاصية Items

يتبع...
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة: Wailzaz
#2
قد أضفنا العناصر عن طريق الخاصية Add التابعة للخاصية Item المسئولة عن العناصر

لكن ماذا لو كان الذى سيضاف ليس عنصر عنصر بل نطاق غير محدد

سيكون علينا استخدام AddRange كاضافة نطاق

كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        Dim strDataRange() As String = {"A", "B", "C", "D", "E"}
        ListBox1.Items.AddRange(strDataRange)


    End Sub

قمنا بتعريف متغير نصي كمصفوفة ذات بعد محدد strDataRange

وادخلنا لها قيم مباشرة

وارسلناها للخاصية AddRange
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#3
الخاصية Insert التابعة للخاصية Items ونرسل معها مكان العنصر من حيث الترتيب وهو الثاني هنا أيضاً اسم العنصر الظاهر للمستخدم وهو A

كود :
ListBox1.Items.Insert(2, "A")
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#4
على غرار قضية Insert ننظر لهذا الكود

كود :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim strDataRange() As String = {"B", "A", "A", "D", "R"}


        ListBox1.Items.AddRange(strDataRange)


    End Sub

نجد أن حرف A مكرر من كلمة BADR يعنى هناك عنصر زيادة

لو أردنا حذفه


ممكن نستخدم الخاصية Remove التابعة للخاصية Items هكذا

كود :
ListBox1.Items.Remove("A")

كن هى لن تزيل حرف أى عنصر واحد بل ستزيل كل ما هو يحمل اسم A


إذا علينا أن نحدد موقع المراد حذفه - فنستخدم الخاصية RemoveAt

كود :
ListBox1.Items.RemoveAt(2)

متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#5
هناك خواص خاصة بالزالق الأفقي والرأسي للأداة من نافذة الخصائص الخاصة بها

مثلا لو أردنا أن نظهر الزالق الأفقي

كود :
ListBox1.HorizontalScrollbar = True

=======================================


لو أردنا أن نعرف عدد العناصر داخل الأداة ListBox

عن طريق الخاصية Count التابعة للخاصية Items

كود :
MsgBox(ListBox1.Items.Count)

=====================================

ربما تريد أن تختار عنصر محدد - ذلك أمر يسير


من الخاصية SetSelected للأداة

ترسل رقم العنصر وأيضاً ترسل هل تريد اختياره أم لا

True Or False

كود :
ListBox1.SetSelected(3, True)
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#6
الخاصية SelectionMode

تجدها فى نافذة الخصائص للأداة


بها أربع اختيارات



MultiExtended

تمكنك من اختيار أكثر من عنصر عن طريق اختيار العنصر مع الضغط على زر Control

MultiSimple

تمكنك من اختيار أكثر م نعنصر دون الضغط على أى زر

None

لا تسمح لك باختيار أى عنصر

One


يكون الاختيار لعنصر أوحد فقط

كود :
ListBox1.SelectionMode = SelectionMode.MultiExtended
ListBox1.SelectionMode = SelectionMode.MultiSimple
ListBox1.SelectionMode = SelectionMode.None
ListBox1.SelectionMode = SelectionMode.One
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة: Iman Mohamed Omran
#7
بعاً تحدثنا عن الخاصية SetSelected

وكيف نحدد عنصر محدد

كود :
ListBox1.SetSelected(2, True)

نرسل رقم الفهرس وهل يتم التحديد أم لا


لنرى هذا الكود

كود :
For I As Integer = 0 To ListBox1.Items.Count - 1
   ListBox1.SetSelected(I, True)
Next

يقوم بعمل حلقة For لتحديد كل عناصر الأداة ListBox1


لكن هل سيعمل بالطبع لا إلا إذا كنا غير الخاصية SelectionMode كما شرحناها

كود :
ListBox1.SelectionMode = SelectionMode.MultiSimple

متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة: Iman Mohamed Omran
#8
الخاصية ClearSelected


تمسح كل الاختيارات

ListBox1.ClearSelected()

==========================================


الأداة بها عدة عناصر

المستخدم يختار منها

العنصر الثالث له ارتباط معين بحدث معين

تريد ان تتأكد هل تم اختيار العنصر الثالث أم لا


الخاصية GetSelected

كود :
If ListBox1.GetSelected(2) Then
            MessageBox.Show("Do")
        Else
            MessageBox.Show("Un Do")
      End If

لا تنسي أن العناصر تأخذ فهرس يبدأ من صفر لذلك رقم الفهرس هنا 2 هو للعنصر 3
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة:
#9
فى حالة وجود أكثر من اختيار بمعنى أن الخاصية SelectionMode = MultiSimple

كود :
ListBox1.SelectionMode = SelectionMode.MultiSimple


أردنا أن نعرف عدد التحديدات للعناصر


كود :
MessageBox.Show(ListBox1.SelectedItems.Count.ToString)

اى أننا استخدمنا الخاصية Count التابعة للخاصية SelectedItems لنعرف عدد العناصر المحددة


============================================


لو أردنا أن نظهر رقم الفهرس للعنصر المحدد

كود :
MessageBox.Show((ListBox1.SelectedIndex + 1).ToString())
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة: نسمة الفجر
#10
لخاصية FindString

يمكن عن طريقها أن أبحث عن عنصر وأجعلها = True

كود :
Dim index As Integer = ListBox1.FindString("A")
ListBox1.SelectedIndex(index)

نقوم بتكوين متغير رقمى ونجعله يساوي فهرس العنصر الذى سنجده بالبحث عن طريق الخاصية
FindString بعد أن أرسلنا لها اسم العنصر المطلوب البحث عنه أو حروف من اسمه


ثم قمنا باستخدام الخاصية SelectedIndex كما شرحناها من قبل
متغيب قليلاً للدراسة Smile
الرد }}}
تم الشكر بواسطة: Iman Mohamed Omran



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم