IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Autocompletion: comment déterminer si une chaine trouve des occurences ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Par défaut Autocompletion: comment déterminer si une chaine trouve des occurences ?
    Bonjour,

    Afin d'améliorer la saisie semi-automatique d'un champ, j'aimerai pouvoir déterminer si le texte entré dans mon Textbox obtient des propositions de la source d'autocompletion (AutoCompleteCustomSource).
    Si aucun choix proposé pour la chaine entrée, je pourrais choisir de regénérer la source d'autocompletion avec des criteres plus vastes.

    Concrètement, c'est pour faire cela:
    un champ ville dont la source d'autocompletion par defaut contient les villes d'Ile de france.
    A partir de 3 caractères entrés, si aucune complétion possible, je regénère la source d'autocompletion sur toutes les villes de france qui commencent par ces premiers caractères entrés.

    Est-ce possible ? Biensur, sans devoir me taper la boucle de recherche dans AutoCompleteCustomSource... cela prendrait trop de temps (la source par défaut contient quelques milliers d'éléments) et enlèverait tout l'intérêt de cette amélioration.

    Joyeuses fêtes de fin d'année

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Je ne crois pas qu'il existe de moyens simple mais la boucle de recherche est inutile en utilisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboBox1.AutoCompleteCustomSource.Contains("la chaine recherchée");
    ça doit être assez optimisé, même sur une liste de plusieurs milliers d'éléments.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Par défaut
    Ca ne marche pas, car Contains() ne sait faire que des comparaisons de valeurs exactement identiques. Il faudrait pouvoir chercher toutes les valeurs commençant par une expression...

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    bah au pire, tu balayes toutes les chaines de la source d'autocomplétition et tu regardes si la chaine que tu recherches est au moins contenu dedans

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 346
    Par défaut
    bah au pire, tu balayes toutes les chaines de la source d'autocomplétition et tu regardes si la chaine que tu recherches est au moins contenu dedans
    Oui... j'avais peur que ça prenne trop de temps et que ca freeze l'interface mais ça semble le faire .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment savoir si une chaine contient des lettres
    Par developpeur_débutant dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 27/05/2009, 12h28
  2. Réponses: 2
    Dernier message: 21/02/2006, 17h53
  3. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 15h05
  4. [VB.NET] Compléter une chaine avec des espaces
    Par Lois dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 09h09
  5. [C#] Comment changer dans une chaine
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 13/05/2004, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo