[VB.NET] listview items durchsuchen und ergebnisse ausgeben

03/20/2014 19:58 s0ul37#1
Hey Leute,

Also was ich hinbekommen will klingt eigentlich simpel.

Ich habe eine Listview mit tausenden Items. Eine Textbox, einen button und noch eine listview.

Ich möchte wenn ich auf den button drücke, dass das programm die erste listview in der zweiten spalte durchsucht, und die zeilen die den text der textbox beinhalten in die zweite listview anzeigen.

oder im idealfall, nur mit einer listview.. dass direkt die erste listview durchsucht wird, und NUR die ergebnisse angezeigt werden.

Code:
Private Sub asearch_Click(sender As System.Object, e As System.EventArgs) Handles asearch.Click

        Try
        
        If isview.Visible = False Then
            isview.Visible = True

            isview.Items.Clear()
            For i As Integer = itemview.Items.Count - 1 To 0 Step -1
                    If itemview.Items(i).ToString.Contains(asearchtext.Text) Then 'erste listview: itemview
                        isview.Items.Add(i) '<-- zweite listview: isview 
                        'isview.it()
                    End If
                Next

        ElseIf isview.Visible = True Then
            isview.Visible = False
            isview.Items.Clear()
            End If

        Catch ex As Exception

        End Try



    End Sub
[Only registered and activated users can see links. Click Here To Register...]


wär cool wenn ihr mir lösungsvorschläge oder ansätze machen könntet, ich blick da gar nicht mehr durch
03/20/2014 20:22 Kaev <3#2
Code:
        For Each lvi In ListView1.Items
            Dim item = From i In ListView1.Items.OfType(Of ListViewItem)()
           Where i.Text = TextBox1.Text

            If item.Any Then
                ListView1.Items.Remove(item.First)
            End If
        Next
Die Namen musst du an dein Programm anpassen, falls diese anders sein sollten.

~Kaev
03/20/2014 22:41 Schlüsselbein#3
Daten und Oberfläche trennen. Das macht dir das arbeiten mit solchen Datensätzen ungemein einfach.