Recherche performant dans LISTVIEW EN VB.net

Résolu
thisisonehood Messages postés 31 Statut Membre -  
 vbnet101 -
Bonjour à Tous,
J'ai un gros soucis, ça fait deux jours que je cherche mais en vain.
Voici mon probleme, j'ai 4 combobox rempli et un listview de 4 colonnes. Chaque colonnes de la listview contient respectivement les données de chaque combobox. J'ai mis les combobox pour faciliter la recherche aux utilisateurs. Cependant j'arrive pas a faire un systeme de recherche performant. J'aimerai simplifier la recherche dans la combo, la valeur du combo me selectionne et me met en premier position celui de la listview. J'ai mis aussi un textbox mais toujours rien. Le seul truc que j'ai trouvé avec les listview est finditemwithtext et ceci ne permet de trouver qu'une seule valeur.
Tres importants la recherche car les données dans la listview atteignent plus de 1000 lignes.
Est ce que quelqu'un a une idée

1 réponse

  1. vbnet101
     
    Exemple :

     
    Private Sub btn_Rechercher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Rechercher.Click 
    
     Dim Chaine As String = Me.tbx_Recherche.Text 
     Dim Message As New System.Text.StringBuilder 
    
     If (Not (String.IsNullOrEmpty(Chaine))) Then 
    
      Dim ListeLigne1 As ListViewItem = (From Element As ListViewItem In lvw_Sources.Items.Cast(Of ListViewItem)() _ 
                Select Element _ 
                Where Element.SubItems(0).Text = Chaine).FirstOrDefault 
    
      Dim ListeLigne2 As ListViewItem = (From Element As ListViewItem In lvw_Sources.Items.Cast(Of ListViewItem)() _ 
                Select Element _ 
                Where Element.SubItems(1).Text = Chaine).FirstOrDefault 
    
      Dim ListeLigne3 As ListViewItem = (From Element As ListViewItem In lvw_Sources.Items.Cast(Of ListViewItem)() _ 
                Select Element _ 
                Where Element.SubItems(2).Text = Chaine).FirstOrDefault 
    
      If ((ListeLigne1 IsNot Nothing) Or (ListeLigne2 IsNot Nothing) Or (ListeLigne3 IsNot Nothing)) Then 
       If (ListeLigne1 IsNot Nothing) Then 
        Message.AppendLine("Trouvé 1ère colonne: ") 
        Message.AppendLine(ListeLigne1.SubItems(0).Text) 
       Else 
        If (ListeLigne2 IsNot Nothing) Then 
          Message.AppendLine("Trouvé 2ième colonne: ") 
          Message.AppendLine(ListeLigne2.SubItems(1).Text) 
        Else 
         If (ListeLigne3 IsNot Nothing) Then 
           Message.AppendLine("Trouvé 3ième colonne: ") 
           Message.AppendLine(ListeLigne3.SubItems(2).Text) 
         End If 
        End If 
       End If 
      Else 
       Message.AppendLine("Non trouvé : ") 
       Message.AppendLine(Chaine) 
      End If 
    
    
     MessageBox.Show(Message.ToString, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    
    End Sub 
    
    0