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 Mobile .NET Discussion :

Textbox autocompletion avec ListBox


Sujet :

Windows Mobile .NET

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut Textbox autocompletion avec ListBox
    Bonjour ,
    En C# Framework 2.0
    dans une Winform munit d'une listBox et d'un textBox je cherche complété la textBox automatiquement avec les Items de la listBox.
    ou (si trop lourd)
    Le fait de compléter la textBox la listBox évolue en fonction des caractères saisi.
    Je suis débutant en prog,
    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Bonjour,

    je cherche complété la textBox automatiquement avec les Items de la listBox
    Tu peux utiliser l'évènement SelectedIndexChanged de ta listBox pour modifier le contenu de ta textBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void listBox1_SelectedIndexChanged(object sender, System.EventArgs
    e)
     
    {
     
    this.textBox1.Text = this.listBox1.SelectedItem.ToString();
     
    }
    Le fait de compléter la textBox la listBox évolue en fonction des caractères saisi.
    Tu peux utiliser l'évènement TextChanged pour modifier le contenu de ta listBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void textBox1_TextChanged(object sender, EventArgs e)
            {
     
            }

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Citation Envoyé par Kentin;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     private void listBox1_SelectedIndexChanged(object sender, System.EventArgs
    e)
     
    {
     
    this.textBox1.Text = this.listBox1.SelectedItem.ToString();
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void textBox1_TextChanged(object sender, EventArgs e)
            {
     
            }
    J'ai essayé mais non ça veux pas
    J'ai tenté en modifiant les caractéristique de la listeBox mis sans succès.
    Merci pour l'aide.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Je viens d'essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                textBox1.Text = listBox1.SelectedItem.ToString();
            }
    et ça marche.

    Ta textBox s'appelle bien "textBox1" et ta listeBox s'appelle bien "listBox1" ?
    As-tu bien mis "listBox1_SelectedIndexChanged" sur l'évènement "SelectedIndexChanged" de ta listeBox ?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Pardon j'ai mal formulé ma réponse,le code listBox1_SelectedIndexChanged fonctionne même en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     textBox1.Text = listBox1.Text;
    C'est textBox1_TextChanged que je n'arrive pas a faire fonctionner.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Dans mon code, textBox1_TextChanged ne fait rien. C'est à toi de voir quel traitement tu veux y faire sachant que cette méthode sera appelée à chaque modification du texte de ta TextBox.

    [EDIT] Je viens de voir un exemple assez complet d'une ListBox sur ce pdf (Chap 5.2.4 p.184): http://tahe.developpez.com/dotnet/csharp/

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Bonsoir,
    merci pour la doc et ta patience!! c'est très enrichissant pour un novice comme moi.

    Pour ce qui est de mon problème je cale toujours et le mieux que j'arrive a faire c'est la sélection dans la listBox mais pas plus
    voici ce que j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void textBox1_TextChanged(object sender, EventArgs e)
            { 
                this.listBox1.Items.Add(textBox1.Text.Trim());      
                this.listBox1.Focus();
            }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                this.listBox1.SelectedIndex = 0;
                this.textBox1.Text = listBox1.Text;
            }

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Tu peux donner des précisions please.

    Quand tu tapes du texte dans ta TextBox, tu veux qu'il se passe quoi dans ta listBox? Si tu as un exemple c'est encore mieux

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Bonjour Kentin,

    je cherche a créer une Autocompletion du textbox grâce a la listbox.

    Si je tape ex "a" dans la texbox -> la listbox me propose tous les mots commençant pas "a" et le fait de cliquer sur un mot de la listbox il s'inscrit dans la textbox .
    C'est la même chose que le textbox de Google .

    Meilleur vœux pour cette nouvelle année!!

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Salut,

    Je ne sais pas si le code marche, mais tu peux faire un truc dans ce style sur l'évènement textChanged.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                foreach (string s in listBox1.Items)
                {
                    // si la chaine n'est pas dans l'item, on le supprime.
                    if (!s.Contains(textBox1.Text))
                    {
                        listBox1.Items.Remove(s);
                    }
                }
    Bonne année!

  11. #11
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Helas ne marche pas non plus,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (string s in listBox1.Items)
    erreur:
    System.InvalidOperationExeption

  12. #12
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Personne aurai une autre idée?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Tu peux parcourir ta listBox1.Items avec un "for" mais dès que tu supprimes un item, la taille de listBox1.Items et les index des items changent.

    Bon courage!

  14. #14
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Ou alors mais je ne sais pas si c'est possible, lire caractère par caractère la saisie dans le textBox et le comparer aux items de la ListBox.
    Actuellement ça ne marche pas car on cherche une chaine de caractère dans la listBox.
    J'ai cherché sur le web mais je ne trouve rien qui puisse m'aider pourtant c'est courant dans les applications un textBox autocomplete.
    Ou alors ce n'est pas un listBox qu'il faut, mais bon j'ai 700 items !!
    Merci en tout cas!!

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Huuuum tu lis déjà caractère par caractère car :

    - avec l'événement TextChanged, à chaque modification du texte de la textBox tu déclenches ta recherche.
    - la méthode "String.Contains" recherche une chaine contenu dans une autre chaine. Si tu as dans ta listBox "ABCDEF", et que tu tapes "ABC" dans ta textBox, "String.Contains" te renverra true;

    http://msdn.microsoft.com/fr-fr/library/dy85x1sa.aspx

  16. #16
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 254
    Par défaut
    Oui pardon tu as raison mais pour la listBox ? les chaines sont (dans mon cas) non variable,une liste de mots qui ne changent pas.
    Sur un autre forum on m'a donné un lien vers un article de Thomas Lebrun mais je n'arrive pas l'incorporer a mon appli car mois c'est du C# NetFramework (windows mobile) et si je prend le code il y des erreurs comme quoi tel outel fonction est inconnues.

    Bonne soirée.

Discussions similaires

  1. problème avec un textBox et une listBox
    Par THIB46 dans le forum VC++ .NET
    Réponses: 6
    Dernier message: 20/05/2015, 12h26
  2. [Débutant] AutoComplete avec un textbox multiligne
    Par Zakkounet dans le forum VB.NET
    Réponses: 3
    Dernier message: 08/02/2012, 14h17
  3. [XL-2003] Fonction intersection avec listbox et textbox
    Par Fred4345 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/06/2011, 01h58
  4. alligner des textbox (input) avec une liste
    Par sundjata dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/01/2006, 16h16
  5. Réponses: 3
    Dernier message: 25/03/2004, 12h35

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