منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : بحث داخل listview
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
Sub load_Glass()
        'ListView1.Columns.Clear()
        ListView1.Items.Clear()
        ListView1.MultiSelect = False
        ListView1.FullRowSelect = True
        ListView1.GridLines = True
        ListView1.Font = New Font("Times New Roman", 10, FontStyle.Regular)
        ListView1.Columns.Clear()
        ListView1.Columns.Add("كود الزجاج", 150, HorizontalAlignment.Center)
        ListView1.Columns.Add("الوصف", 250, HorizontalAlignment.Center)
        ListView1.Columns.Add("الثمك", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("الفئة", 100, HorizontalAlignment.Center)
        ListView1.View = View.Details
        ListView1.GridLines = True
        ListView1.FullRowSelect = True
        ListView1.ShowGroups = True
        SelectAll_stock_in_tbl_Glass()
        Dim myrow As DataRow
        For Each myrow In dt_stock_in_tbl_Glass.Rows
            ListView1.Items.Add(myrow.Item(1).ToString, 4)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(3))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(9))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(2))

            'ListView1.Text = ImageList1.Images.Count.ToString
        Next

    End Sub
    Public dt_stock_in_tbl_Glass As New DataTable
    Public Sub SelectAll_stock_in_tbl_Glass()

        Dim da As New SqlDataAdapter
        dt_stock_in_tbl_Glass.Clear()
        da = New SqlDataAdapter("select * from tbl_Materials where Ref= '" & TextBox3.Text & "'", Con)
        da.Fill(dt_stock_in_tbl_Glass)
    End Sub
هذا كود تحميل من جدول الى عرض listview
يوجد textbox اريد ان ابحث بداخلة عن خانة معينة عند الحدث textchanged
(04-08-22, 11:28 AM)Lathe1 كتب : [ -> ]Sub load_Glass()
        'ListView1.Columns.Clear()
        ListView1.Items.Clear()
        ListView1.MultiSelect = False
        ListView1.FullRowSelect = True
        ListView1.GridLines = True
        ListView1.Font = New Font("Times New Roman", 10, FontStyle.Regular)
        ListView1.Columns.Clear()
        ListView1.Columns.Add("كود الزجاج", 150, HorizontalAlignment.Center)
        ListView1.Columns.Add("الوصف", 250, HorizontalAlignment.Center)
        ListView1.Columns.Add("الثمك", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("الفئة", 100, HorizontalAlignment.Center)
        ListView1.View = View.Details
        ListView1.GridLines = True
        ListView1.FullRowSelect = True
        ListView1.ShowGroups = True
        SelectAll_stock_in_tbl_Glass()
        Dim myrow As DataRow
        For Each myrow In dt_stock_in_tbl_Glass.Rows
            ListView1.Items.Add(myrow.Item(1).ToString, 4)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(3))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(9))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(2))

            'ListView1.Text = ImageList1.Images.Count.ToString
        Next

    End Sub
    Public dt_stock_in_tbl_Glass As New DataTable
    Public Sub SelectAll_stock_in_tbl_Glass()

        Dim da As New SqlDataAdapter
        dt_stock_in_tbl_Glass.Clear()
        da = New SqlDataAdapter("select * from tbl_Materials where Ref= '" & TextBox3.Text & "'", Con)
        da.Fill(dt_stock_in_tbl_Glass)
    End Sub
هذا كود تحميل من جدول الى عرض listview
يوجد textbox اريد ان ابحث بداخلة عن خانة معينة عند الحدث textchanged
جرب ما يلي
PHP كود :
Private SrchParameter As String ""
 
   Private NxtStrtRow As Integer 0
    Private Sub ListView1_KeyDown
(sender As ObjectAs KeyEventArgsHandles ListView1.KeyDown
        If e
.KeyCode Keys.F3 Then
            SearchListView
()
 
       End If
 
   End Sub
    Private Sub SearchListView
()
 
       ' selects the row containing data matching the text parameter
        ' 
sets NxtStrtRow (a form level variablevalue for "find next match" scenario (press F3 key)
 
       If ListView1.Items.Count 0 Then
            If SrchParameter 
<> "" Then
                Dim thisRow 
As Integer = -1
                For x 
As Integer NxtStrtRow To ListView1.Items.Count 1          ' each row
                    For y As Integer = 0 To ListView1.Columns.Count - 1             ' 
each column  
                        If InStr
(1ListView1.Items(x).SubItems(y).Text.ToLowerSrchParameter.ToLower) > 0 Then
                            thisRow 
x
                            NxtStrtRow 
1
                            Exit 
For
 
                       End If
 
                   Next
                    If thisRow 
> -1 Then Exit For
 
               Next
                If thisRow 
= -1 Then
                    MsgBox
("Not found.")
 
                   NxtStrtRow 0
                    TextBox1
.SelectAll()
 
                   TextBox1.Select()
 
               Else
                    
' select the row, ensure its visible and set focus into the listview
                    ListView1.Items(thisRow).Selected = True
                    ListView1.Items(thisRow).EnsureVisible()
                    ListView1.Select()
                End If
            End If
        End If
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        If Not String.IsNullOrWhiteSpace(TextBox1.Text) Then
            SrchParameter = TextBox1.Text
            NxtStrtRow = 0
            SearchListView()
        End If
    End Sub 
قم باستخدام هذا الكود فانه يقوم بتحديد كل ما يتشابه مع بدايه أي عنصر من القائمة 
وكلما أضفت أحرف أكثر ضاق نطاق التحديد ..:
كود :
   Private Sub SearchWord(strWord As String)
       If ListView1.Items.Count <= 0 Then Exit Sub
       If Trim(strWord) = "" Then
           For i = 0 To ListView1.Items.Count - 1
               ListView1.Items(i).Selected = False
           Next
           Exit Sub
       End If

       For i = 0 To ListView1.Items.Count - 1
           If LCase(strWord) = LCase(Mid(ListView1.Items.Item(i).Text, 1, Len(strWord))) Then
               ListView1.Items(i).Selected = True
           Else
               ListView1.Items(i).Selected = False
           End If
       Next

   End Sub

   Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       SearchWord(TextBox1.Text)
   End Sub


أو استخدم هذا الكود للبحث عن أي عنصر يشابه بجزء منه ما تبحث عنه حتى لو لم يكن من البدايه ويحدده
وكلما أضفت أحرف أكثر ضاق نطاق التحديد ..:
كود :
   Private Sub SearchWord2(strWord As String)
       If ListView1.Items.Count <= 0 Then Exit Sub
       If Trim(strWord) = "" Then
           For i = 0 To ListView1.Items.Count - 1
               ListView1.Items(i).Selected = False
           Next
           Exit Sub
       End If

       For i = 0 To ListView1.Items.Count - 1
           For j = 1 To Len(ListView1.Items.Item(i).Text)
               If LCase(strWord) = LCase(Mid(ListView1.Items.Item(i).Text, j, Len(strWord))) Then
                   ListView1.Items(i).Selected = True
                   Exit For
               Else
                   ListView1.Items(i).Selected = False
               End If
           Next


       Next

   End Sub
   Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
       SearchWord2(TextBox1.Text)
   End Sub
(04-08-22, 12:29 PM)asmarsou كتب : [ -> ]
(04-08-22, 11:28 AM)Lathe1 كتب : [ -> ]Sub load_Glass()
        'ListView1.Columns.Clear()
        ListView1.Items.Clear()
        ListView1.MultiSelect = False
        ListView1.FullRowSelect = True
        ListView1.GridLines = True
        ListView1.Font = New Font("Times New Roman", 10, FontStyle.Regular)
        ListView1.Columns.Clear()
        ListView1.Columns.Add("كود الزجاج", 150, HorizontalAlignment.Center)
        ListView1.Columns.Add("الوصف", 250, HorizontalAlignment.Center)
        ListView1.Columns.Add("الثمك", 100, HorizontalAlignment.Center)
        ListView1.Columns.Add("الفئة", 100, HorizontalAlignment.Center)
        ListView1.View = View.Details
        ListView1.GridLines = True
        ListView1.FullRowSelect = True
        ListView1.ShowGroups = True
        SelectAll_stock_in_tbl_Glass()
        Dim myrow As DataRow
        For Each myrow In dt_stock_in_tbl_Glass.Rows
            ListView1.Items.Add(myrow.Item(1).ToString, 4)
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(3))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(9))
            ListView1.Items(ListView1.Items.Count - 1).SubItems.Add(myrow.Item(2))

            'ListView1.Text = ImageList1.Images.Count.ToString
        Next

    End Sub
    Public dt_stock_in_tbl_Glass As New DataTable
    Public Sub SelectAll_stock_in_tbl_Glass()

        Dim da As New SqlDataAdapter
        dt_stock_in_tbl_Glass.Clear()
        da = New SqlDataAdapter("select * from tbl_Materials where Ref= '" & TextBox3.Text & "'", Con)
        da.Fill(dt_stock_in_tbl_Glass)
    End Sub
هذا كود تحميل من جدول الى عرض listview
يوجد textbox اريد ان ابحث بداخلة عن خانة معينة عند الحدث textchanged
جرب ما يلي
PHP كود :
Private SrchParameter As String ""
 
   Private NxtStrtRow As Integer 0
    Private Sub ListView1_KeyDown
(sender As ObjectAs KeyEventArgsHandles ListView1.KeyDown
        If e
.KeyCode Keys.F3 Then
            SearchListView
()
 
       End If
 
   End Sub
    Private Sub SearchListView
()
 
       ' selects the row containing data matching the text parameter
        ' 
sets NxtStrtRow (a form level variablevalue for "find next match" scenario (press F3 key)
 
       If ListView1.Items.Count 0 Then
            If SrchParameter 
<> "" Then
                Dim thisRow 
As Integer = -1
                For x 
As Integer NxtStrtRow To ListView1.Items.Count 1          ' each row
                    For y As Integer = 0 To ListView1.Columns.Count - 1             ' 
each column  
                        If InStr
(1ListView1.Items(x).SubItems(y).Text.ToLowerSrchParameter.ToLower) > 0 Then
                            thisRow 
x
                            NxtStrtRow 
1
                            Exit 
For
 
                       End If
 
                   Next
                    If thisRow 
> -1 Then Exit For
 
               Next
                If thisRow 
= -1 Then
                    MsgBox
("Not found.")
 
                   NxtStrtRow 0
                    TextBox1
.SelectAll()
 
                   TextBox1.Select()
 
               Else
                    
' select the row, ensure its visible and set focus into the listview
                    ListView1.Items(thisRow).Selected = True
                    ListView1.Items(thisRow).EnsureVisible()
                    ListView1.Select()
                End If
            End If
        End If
    End Sub
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
        If Not String.IsNullOrWhiteSpace(TextBox1.Text) Then
            SrchParameter = TextBox1.Text
            NxtStrtRow = 0
            SearchListView()
        End If
    End Sub 

الكود لا يعمل