تقييم الموضوع :
  • 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 ) ضيف كريم