الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث في اللlistbox

بدأه ibn alatheer في 18 ديسمبر 2009 · 4 رد · 1,165 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأعزاء : السلام عليكم

عندي أداة ListBox وزر بحث ، ومربع لإدخال كلمة البحث

استخدمت الكود التالي لزر البحث

If TextSearch.Text.Trim = "" Then
            Exit Sub
        End If

       ListSearch.SelectedIndex = ListSearch.FindString(TextSearch.Text, I)
        I = ListSearch.SelectedIndex

السؤال هو: إذا كانت الكلمة المدخلة في مربع الإدخال غير موجودة في اللست بوكس ...ماذا أكتب؟

بمعنى إذا كانت الكلمة في مربع الإدخال لا توافق البيانات الموجودة في اللست بوكس

ما هي الطريقة؟

تم تعديل هذه المشاركة بواسطة ibn alatheer في 18 ديسمبر 2009 في 15:11

alshameri2007y@hotmail.com

#2

اللهم لك الحمد

كنت متأكد أنه لن يبخل أحد بالرد

لكن شكراً.

حليت المشكلة بعون الله

وللفائدة لمن قد يبحث عن حل لنفس المشكلة إليه الكود

If ListSearch.FindString(TextSearch.Text) = -1 Then
            MsgBox("لا توجد نتيجة")
        Else

            ListSearch.SelectedIndex = ListSearch.FindString(TextSearch.Text, I)
            I = ListSearch.SelectedIndex
        End If

لكن هناك مشكلة أخرى إخواني

وهي أن طريقة البحث هذه لن تنفع إلا مع الكلمة كاملاً

مثلاً لو كتبت كلمة طلاق ، أو علم ، أو ذنوب ، تظهر الرسالة أنه لا توجد نتيجة

بعكس ما لو كتبت كلمة الطلاق أو العلم أو الذنوب فإن النتيجة تظهر

فما الحل جزاكم الله خيراً؟؟

تم تعديل هذه المشاركة بواسطة ibn alatheer في 18 ديسمبر 2009 في 15:28

alshameri2007y@hotmail.com

#3

من بين الحلول أن تقوم باستعراض محتوى المجموعة ListSearch.Items و تعمل بحث مشخص في محتوى كل عنصر من المجموعة حتى تكون لك حرية البحث عن مقطع من الإسم مثلا أو غيره. مثال :

For Each s As String In ListSearch.Items
' البحث داخل نص العنص
Dim pos As Integer = s.IndexOf("النص المراد البحث عنه")
if pos > -1 Then
' تم إيجاد النص
End If
Next

يمكنك تحرير الكود ليتلائم و متطلبات المشروع الذي تعمل عليه.

#4

العناصر التى يتم اضافتها داخل الـ ListBox ليست مقتصره على النوع String فقط و بالتالى اذا اردت بالحث عن جزء من النص فستحتاج لتعديل كود الأخ محمد رضى حتى يصبح الكود عام لأى ListBox

For Each s As String In ListSearch.Items
    ' البحث داخل نص العنص
    Dim pos As Integer = s.ToString().IndexOf("النص المراد البحث عنه")
    if pos > -1 Then
        ' تم إيجاد النص
    End If
Next

يمكنك بدلا من استخدام IndexOf ان تستخدم StartsWith او EndsWith للتأكد من ان النص يبدء او ينتهى بكلمه معينه او يمكنك استخدام الكلمه المحجوزه Like لتصميم pattren معين حسب رغبتك

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Muhammad alaa في 20 ديسمبر 2009 في 19:59

مدونتي: C++ Tips and Tricks

#5

شكراً لكم إخواني الكرام

صحيح أن الشكر متأخر، لكن أسأل الله أن يكتب أجركم، ويزيدكم علما

alshameri2007y@hotmail.com

مواضيع مشابهة