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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  البحث بين تاريخين لاسم معين alshandodi 7 126 أمس, 04:46 PM
آخر رد: elgokr
  [VB.NET] عند البحث عن سجل بين تاريخين اسامه الهرماوي 2 123 22-05-19, 08:12 PM
آخر رد: اسامه الهرماوي
  خطأ أثناء عملية البحث في DATAGRIDVIEW ahmedfa71 5 117 14-05-19, 04:10 PM
آخر رد: elgokr
  البحث بتاريخ من نوع نصي محمد خيري 18 342 05-05-19, 06:37 PM
آخر رد: محمد خيري
  [VB.NET] حفظ ما في listview داخل settings trakktour 2 173 30-04-19, 02:33 AM
آخر رد: trakktour
  [VB.NET] جلب بيانات من listview trakktour 7 203 20-04-19, 04:51 PM
آخر رد: elgokr
  هل يُمكن عرض نتيجة البحث في الداتاجريدفيو الثانية بدلاً من الأولى ؟ Hazem1 5 180 20-04-19, 08:21 AM
آخر رد: elgokr
  [سؤال] wpf listview Mohamed20 0 78 14-04-19, 05:12 AM
آخر رد: Mohamed20
  [VB.NET] جمع فواتير الناتجة عن البحث وعدد الفواتير EMADSSS 9 306 11-04-19, 08:27 AM
آخر رد: elgokr
  [VB.NET] البحث بشرطين EMADSSS 5 198 06-04-19, 01:36 AM
آخر رد: EMADSSS

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


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