بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
في المثال المرفق كود للبحث في الليست فيو، والبحث يسير بشكل جيد ولكن ينقصه شيئان:
1- ظهور مسج عند الإنتهاء من البحث.
2- ظهور مسج عند عدم وجود الكلمة في الليست فيو.
وشكرا
بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه ،،
في المثال المرفق كود للبحث في الليست فيو، والبحث يسير بشكل جيد ولكن ينقصه شيئان:
1- ظهور مسج عند الإنتهاء من البحث.
2- ظهور مسج عند عدم وجود الكلمة في الليست فيو.
وشكرا
مربع ListView له الدالة FindItemWithText التي تبحث لك بين عناصر ListView عن نص و ترجع لك كائن من نوع ListViewItem للسطر الذي وجد فيه النص المبحوث عنه. إذا أرجعت Nothing فهذا إعلام بنهاية البحث. استعمل هذا الكود :
' تنشيط مربع اللائحة
ListView1.Select()
' البحث عن النص
Dim lvi As ListViewItem = ListView1.FindItemWithText(Text1.Text.Trim(), False, Command3.Tag)
' التحقق من وجود النص
If Not lvi Is Nothing Then
' تنشيط السطر الذي وجد فيه النص
lvi.Selected = True
' تحديد رقم السطر الذي سنكمل منه عملية البحث
Command3.Tag = lvi.Index + 1
Else ' لا وجود للنص أو نهاية عملية البحث
' رقم السطر الأول الذي سنبدأ منه البحث من جديد
Command3.Tag = 0
' إعلام المستخدم بنهاية البحث
MsgBox("نهاية البحث.")
End Ifالخاصية Tag للزر Command3 يجب أن تهيئ على القيمة 0 كي تبدأ عملية البحث من السطر الأول.
شكراً لك اخي الكريم
ولكن هل يمكن تطبيق هذا الكود على المثال المرفق
وشكرا
قم بنسخ الكود المرفق في ردي السابق في الحدث Click للزر Command3 مكان الكود القديم. ثم حدد الخاصية Tag على القيمة 0 في الحدث TextChanged لـ Text1 و سيعمل إن شاء الله.
شكراً لك اخي الكريم
ولكن الكود الذي كتبته أنت لا يبحث عن جزء من الكلمة إذا كان الحرف ليس الأول فمثلا كلمة "عمر" لو بتحث عن الميم لا يبحث.
وشكرا
فإذن الحل يكمن في تغيير جملة النداء على FindItemWithText إلى لوب تستعرض السطور و تبحث عن النص داخل نص السطر :
' تنشيط مربع اللائحة
ListView1.Select()
' النتيجة
Dim lvi As ListViewItem = Nothing
' استعراض الأسطر المتبقية منذ آخر عملية بحث
If Command3.Tag < ListView1.Items.Count - 1 Then
For i As Integer = Command3.Tag To ListView1.Items.Count - 1
' بحث داخل النص
If ListView1.Items(i).Text.Contains(Text1.Text) Then
' تحديد العنصر الذ تم إيجاد النص فيه
lvi = ListView1.Items(i)
' إنهاء عملية البحث
Exit For
End If
Next
End If
' التحقق من وجود النص
If Not lvi Is Nothing Then
' تنشيط السطر الذي وجد فيه النص
lvi.Selected = True
' تحديد رقم السطر الذي سنكمل منه عملية البحث
Command3.Tag = lvi.Index + 1
Else ' لا وجود للنص أو نهاية عملية البحث
' رقم السطر الأول الذي سنبدأ منه البحث من جديد
Command3.Tag = 0
' إعلام المستخدم بنهاية البحث
MsgBox("نهاية البحث.")
End Ifالمتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…