Rechercher valeur dans une listview

Résolu
cs_lilj Messages postés 203 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 1 avril 2012 - 16 nov. 2010 à 17:17
cs_lilj Messages postés 203 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 1 avril 2012 - 17 nov. 2010 à 13:23
bonjour,
j'ai cherché un peu partout une méthode (en VB 2010) permettant d'indiquer si une valeur est présente dans une listview... mais je n'ai rien trouvé..

Ma listview possède 3 colonnes et cette méthodes doit me permettre d'indiquer si une valeur est présente dans l'une des cellules de la listview. j'ai essayé un .findwithtext mais rien n'y fait.

Merci.

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 nov. 2010 à 08:36
Bonjour,
Voici un code de recherche , mais qui ne marche que sur la 1ère colonne:

 'rechercher texte
    Private lastSearch As String
    Private lastIndex As Integer = -1


 Dim searchText As String = txtSearch.Text.Trim()
        Dim lvItem As ListViewItem = Nothing
        'ne s'embarrasse pas de recherches vides
        If searchText = "" Then
            Return
        End If
              'nettoyer items sélectionnés
        If (ListView1.SelectedItems.Count > 0) Then
            ListView1.SelectedItems(0).Selected = False
        End If
        'vérifier si le lastSearch est le même que l'actuel
        'Vérifiez également si nous avons atteint le dernier élément
        'a  la deuxième vérification, lastIndex <listView.Items.Count - 1, fait en sorte de ne pas
        'aller au-delà des indices de la listview
        'la façon dont elle est maintenant, si nous atteignons le dernier élément de la recherche il va revenir au
        'premier point
        If searchText = lastSearch And lastIndex < ListView1.Items.Count - 1 Then
            'Nous avons besoin de continuer là où nous nous sommes quittés,
            ' recherche 1 devant où nous l'avons trouvé;», la position du même nom
            lvItem = ListView1.FindItemWithText(searchText, False, lastIndex + 1)
        Else
            'lancer la recherche  depuis le début
            lvItem = ListView1.FindItemWithText(searchText, False, 0)
        End If
        lastSearch = searchText
        If Not (lvItem Is Nothing) Then
            lastIndex = lvItem.Index
            ListView1.Focus()
            lvItem.Selected = True
            ListView1.TopItem = lvItem
        End If

Pour plus de détail voir ce programme:
http://www.vbfrance.com/codes/SAUVEGARDER_DERNIERES_MODIFICATIONS_52372.aspx
@+ Le Pivert
3
cs_lilj Messages postés 203 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 1 avril 2012 5
17 nov. 2010 à 13:23
merci beaucoup !!
0
Rejoignez-nous