تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] البحث في listview
#1
السلام عليكم احبابي في الله
عندي سؤال بسيط 
اريد البحث في listview عن طريق textchanged
كلما كتبت حرف يظهر لي النتائج و اذا حذفت ما كتبته عادت listview كما كانت
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Read_m3u()
   End Sub
   Sub Read_m3u()

       Dim Lines As String() = IO.File.ReadAllLines("trakktour.m3u")
       Dim dt As New DataTable

       Dim row(1) As String

       For i As Integer = 0 To Lines.Length - 1
           Dim line As String = Lines(i).ToString.Trim
           If line.StartsWith("#EXTINF") Then
               row(0) = line.Split(",")(1)
           ElseIf line.StartsWith("http://") Then
               row(1) = line.Trim
               Dim a As ListViewItem
               a = ListView1.Items.Add(row(0))
               a.SubItems.Add(row(1))
           End If
       Next
   End Sub
الرد
تم الشكر بواسطة:
#2
جرب هذا
كود :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
   Read_m3u()
End Sub


' متغير للإحتفاظ بالعناصر الأصلية كاملة
Dim originalItems As New List(Of ListViewItem)
Private Sub Read_m3u()

   ' قراءة الملف على شكل مصفوفة نصية
   Dim Lines As String() = IO.File.ReadAllLines("trakktour.m3u")

   Dim row(1) As String

   ' تعبئة متغير العناصر الأصلية كاملة
   For Each line As String In Lines
       If line.Trim.StartsWith("#EXTINF") Then
           row(0) = line.Split(",")(1)

       ElseIf line.Trim.StartsWith("http://") Then
           row(1) = line.Trim
           originalItems.Add(New ListViewItem(row))
       End If
   Next

   ' عرض العناصر من  متغير العناصر الأصلية كاملة
   Me.ListView1.Items.AddRange(originalItems.ToArray)

End Sub


' متغير لوضع العناصر الناتجة من البحث
Dim resultItems As New List(Of ListViewItem)
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged

   ' إفراغ متغير العناصر الناتجة استعداداً لوضع نتائج بحث جديدة
   resultItems.Clear()

   ' تعبئة متغير العناصر الناتجة من البحث
   For Each itm As ListViewItem In originalItems

       ' Equals مطابقة كامل النص
       'If itm.SubItems(0).Text.Trim.ToLower.Equals(Me.TextBox1.Text.Trim.ToLower) Then resultItems.Add(itm)

       ' Contains مطابقة أي جزء من النص
       If itm.SubItems(0).Text.Trim.ToLower.Contains(Me.TextBox1.Text.Trim.ToLower) Then resultItems.Add(itm)

       ' ToLower تحويل النص إلى الأحرف الصغيرة
       ' Trim حذف المسافات قبل وبعد النص
   Next

   ' إفراغ أدات الليست فيو من العناصر استعداداً لعرض عناصر حسب النتيجة
   Me.ListView1.Items.Clear()

   If TextBox1.Text.Trim <> "" Then
       ' عرض العناصر الناتجة من البحث
       Me.ListView1.Items.AddRange(resultItems.ToArray)

   Else
       ' عرض العناصر الأصلية كاملة
       Me.ListView1.Items.AddRange(originalItems.ToArray)

   End If

End Sub
الرد
تم الشكر بواسطة: trakktour , ابو روضة
#3
(02-10-18, 01:23 AM)rnmr كتب : جرب هذا
كود :
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
   Read_m3u()
End Sub


' متغير للإحتفاظ بالعناصر الأصلية كاملة
Dim originalItems As New List(Of ListViewItem)
Private Sub Read_m3u()

   ' قراءة الملف على شكل مصفوفة نصية
   Dim Lines As String() = IO.File.ReadAllLines("trakktour.m3u")

   Dim row(1) As String

   ' تعبئة متغير العناصر الأصلية كاملة
   For Each line As String In Lines
       If line.Trim.StartsWith("#EXTINF") Then
           row(0) = line.Split(",")(1)

       ElseIf line.Trim.StartsWith("http://") Then
           row(1) = line.Trim
           originalItems.Add(New ListViewItem(row))
       End If
   Next

   ' عرض العناصر من  متغير العناصر الأصلية كاملة
   Me.ListView1.Items.AddRange(originalItems.ToArray)

End Sub


' متغير لوضع العناصر الناتجة من البحث
Dim resultItems As New List(Of ListViewItem)
Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged

   ' إفراغ متغير العناصر الناتجة استعداداً لوضع نتائج بحث جديدة
   resultItems.Clear()

   ' تعبئة متغير العناصر الناتجة من البحث
   For Each itm As ListViewItem In originalItems

       ' Equals مطابقة كامل النص
       'If itm.SubItems(0).Text.Trim.ToLower.Equals(Me.TextBox1.Text.Trim.ToLower) Then resultItems.Add(itm)

       ' Contains مطابقة أي جزء من النص
       If itm.SubItems(0).Text.Trim.ToLower.Contains(Me.TextBox1.Text.Trim.ToLower) Then resultItems.Add(itm)

       ' ToLower تحويل النص إلى الأحرف الصغيرة
       ' Trim حذف المسافات قبل وبعد النص
   Next

   ' إفراغ أدات الليست فيو من العناصر استعداداً لعرض عناصر حسب النتيجة
   Me.ListView1.Items.Clear()

   If TextBox1.Text.Trim <> "" Then
       ' عرض العناصر الناتجة من البحث
       Me.ListView1.Items.AddRange(resultItems.ToArray)

   Else
       ' عرض العناصر الأصلية كاملة
       Me.ListView1.Items.AddRange(originalItems.ToArray)

   End If

End Sub
الله الله عليك يا فنان الف شكر اخي الغالي 
شغاااال و ب امتياز
الرد
تم الشكر بواسطة: rnmr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] البحث في الاكسس اسامه الهرماوي 1 31 اليوم, 01:17 AM
آخر رد: عبد العزيز البسكري
  [سؤال] طريقة البحث ابو يوسف النواوي 2 2 92 أمس, 09:08 PM
آخر رد: elgokr
  [سؤال] كيف يتم البحث عن شاشة بالفعل تعمل وتفعيلها لتصبح فوق الجميع dametucorazon 3 86 10-12-18, 05:47 AM
آخر رد: rmnr
  سؤال بخصوص البحث باستخدام التاريخ عن طريق WebService masry4u 3 83 08-12-18, 08:36 PM
آخر رد: masry4u
  [VB.NET] كيف يمكن تحديد كلمة بلون داخل listview XBOOBX 1 83 30-11-18, 06:28 PM
آخر رد: XBOOBX
  البحث داخل الجريد mmali127 4 117 27-11-18, 09:32 AM
آخر رد: mmali127
  [VB.NET] بعد برمجة البرنامج البحث بيت تاريخين يعمل علي جهازي ولا يعمل عند العميل shoma79 3 120 27-11-18, 05:25 AM
آخر رد: shoma79
  البحث بالرقم و بالاسم محمد خيري 4 186 22-11-18, 11:11 PM
آخر رد: محمد خيري
  سؤال في ListView Emam emam 4 101 22-11-18, 04:47 PM
آخر رد: Emam emam
  [سؤال] محتاج مساعدة في ListView Simo1991 1 55 06-11-18, 05:46 PM
آخر رد: Rabeea Qbaha

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


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