Recherche dans COMBOBOX

Résolu
cs_thisisonehood Messages postés 4 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 4 juin 2012 - 24 mai 2012 à 12:04
cs_thisisonehood Messages postés 4 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 4 juin 2012 - 4 juin 2012 à 08:51
BONJOUR A TOUS LE EXPERTS.
Voici j'ai un gros soucis toujours avec les combobox. Pour faire une systeme de recherche performant. J'ai trouvé un super truc sur la toile qui me permet de regler facilement le probeme. En gros c'est une procédure. Le probleme est que je ne peux pas l'adapter a mon code donc a un evenement d'un combobox voici le code.
Sub trier(ByVal a(), ByVal gauc, ByVal droi) ' Quick sort
        Dim ref As Object, g As Long, d As Long
        Dim temp As Object
        ref = a(Int((gauc + droi) \ 2))
        g gauc : d droi
        Do
            Do While a(g) < ref : g = g + 1 : Loop
            Do While ref < a(d) : d = d - 1 : Loop
            If g <= d Then
                temp a(g) : a(g) a(d) : a(d) = temp
                g g + 1 : d d - 1
            End If
        Loop While g <= d
        If g < droi Then Call trier(a, g, droi)
        If gauc < d Then Call trier(a, gauc, d)
    End Sub

Est-Ce que quelqu'un a une idée. SVP ça fait longtemps que je suis bloqué au meme point est mon stage se termine bientot.
MERCI D'avance de votre aide

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mai 2012 à 12:34
Bonjour,

Je ne comprends pas : tu veux mettre en place "un système de recherche performant" et ... le code montré est un code de tri récursif !
Quant à :
En gros c'est une procédure. Le probleme est que je ne peux pas l'adapter a mon code donc a un evenement d'un combobox voici le code.

c'est encore plus surprenant car on ne trie qu'une seule fois (et donc : pas à lier à un évènement de la combo, sauf à être totalement maso pour refaire et re-refaire toujours le même travail, avec le même résultat ! ) .
Un tel tri n'est logique :
- qu'à la demande
ou
- qu'au chargement du form contenant la combo.
ou encore (mais commence à devenir relou) :
- qu'à chaque ajout à la combo !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 mai 2012 à 14:21
Ecoute :
1) Je ne connais absolument pas VB.Net (même pas sur ma machine)
2) je me dis que VB.Net offre déjà du tout cuit à ce propos
3) je me rends sur MSDN, juste pour "voir"
4) j'y trouve que tout cela est déjà prévu, avec explication ici : Tapez le texte de l'url ici., par utilisation d'une simple propriété !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
cs_thisisonehood Messages postés 4 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 4 juin 2012
24 mai 2012 à 13:12
Bonjour UcFoutu,
Merci pour ta réponse clair et net.
J'ai oublier de mentionner je suis DEBUTANT en VB.net et dans la programmation en générale.
En gros le code monté ne sert à rien.
Cependant aurait tu une idée pour faire un filtre selectif avec un combo pour la recherche.
Exemple avec des mots comme "MOTDEUN", "MOTDEDEUX", "MOTDETROIS".... "MOTDEN"
Ceci fait si l'utilisateur commence par taper "MOT" que le filtre ne montre que tout le mot commençant par ce qui est tapé.
J'ai essayé avec ça :

Combo.DropDownStyle = ComboBoxStyle.DropDownList

J'ai un filtre de tout les mots de la premiere lettre tapé mais apres l'utilisateur ne peut pas continuer a taper le mot.
Exemple si "M" filtre de tout les mot commençant par "M" en fesant "O" le filtre a tout les mot de "O"

J'ai aussi essayé ça :
If COMBO.FindString(.Text) > 0 Then
                search = .Text.Length
                .SelectedIndex = .FindString(.Text)
                .SelectionStart = search
                .SelectionLength = .Text.Length - search
End iF


L'utilisateur peut continuer a taper mais il y'a pas de filtre.
Donc est-ce que on pourrait combiner les deux choses ce qui fera bien mon affaire.
Merci
0
cs_thisisonehood Messages postés 4 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 4 juin 2012
4 juin 2012 à 08:51
Bonjour,
Merci pour ta réponse ça m'a beaucoup aidé.
Pardon cependant pour le temps de réponse long.
0
Rejoignez-nous