Aide pour rechercher dans une listbox [Résolu]

Signaler
Messages postés
134
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
15 février 2011
-
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010
-
Bonjour,

Je souhaiterai faire une recherche dans une liste box et affiché l'ensemble des résultats dans une autre listbox et pas seulement le premier trouvé.

Merci d'avance pour votre aide.
A voir également:

5 réponses

Messages postés
843
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
5
Salut,
    "For i = 1 To ListBox1.Items.Count - 1"
Est.ce volontaire que tu commence à l'index 1? Le 1er élément a l'index 0 et non 1...
Utilise la méthode Equals pour tester si le texte correspond:
    ListBox2.Items.Clear()
    ListBox2.Visible = True
    For Each item As String In ListBox1.Items
        If String.Equals(item, TextBox1.Text, StringComparison.InvariantCultureIgnoreCase) Then
            ListBox2.Items.Add(item)
        End If
    Next
"Autre problème : la recherche ne se fait que sur les premiers
caractères. Si le mot recherché est au milieu d'un élément, il n'est
pas trouvé"
Dans ce cas tu ne dois pas tester si le texte est le même, mais si il contient la chaine recherché. Le plus simple dans ce cas, à mon avis, est de faire un ToLower pour ne pas prendre en compte les majuscules:
        ListBox2.Items.Clear()
        ListBox2.Visible = True
        For Each item As String In ListBox1.Items
            item = item.ToLower
            If item.Contains(TextBox1.Text.ToLower) Then
                ListBox2.Items.Add(item)
            End If
        Next
Messages postés
134
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
15 février 2011
1
J'ai reussi avec ce code :

Dim i As Integer
        Dim j As Integer
        ListBox2.Items.Clear()
        ListBox2.Visible = True
        For i = 1 To ListBox1.Items.Count - 1
            j = InStr(ListBox1.Items(i), TextBox1.Text)
            If j = 1 Then
                ListBox2.Items.Add(ListBox1.Items(i).ToString)
            End If
        Next i

Maintenant, mon problème est avec les majuscules. Dans ma listbox1, la première lettre est en majuscule. Lorsque je fais une recherche sans mettre la majuscule, les arguments ne sont pas trouvés.
Messages postés
134
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
15 février 2011
1
Autre problème : la recherche ne se fait que sur les premiers caractères. Si le mot recherché est au milieu d'un élément, il n'est pas trouvé
Messages postés
134
Date d'inscription
jeudi 31 juillet 2008
Statut
Membre
Dernière intervention
15 février 2011
1
Merci [auteur/KEVINORY/183467.aspx Kevin.Ory] pour la réponse.
Messages postés
539
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
14 juillet 2010

Salut,
Sinon tu as la méthode FindString.
n'oubliez pas "réponse accepté".
@+
youpi :)