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

C# Discussion :

Comment Limiter le choix uniquement à la liste déroulante (Combobox) ? [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut Comment Limiter le choix uniquement à la liste déroulante (Combobox) ?
    Bonjour à tous,
    Encore un souci dans un userform avec un combobox.
    En effet, la plupart des utilisateurs utilisent normalement le
    combobox et sélectionne l'un des intitulé de la liste déroulante qui
    est défini , sachant que le ComboboxStyle est en 'DropDown' et en autoComplete
    Malheureusement, j'ai des utilisateurs qui arrivent à me mettre en saisie manuel, un autre intitulé que ceux proposés (Exemple : Espace,- ,Rien,*....)
    Y-aurait-il un moyen pour n'autoriser que les intitulés de la liste déroulante ?
    Merci par avance de votre aide.
    Cordialement.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Pour éviter les saisies, il faut que la propriété ComboboxStyle soit DropDownList
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Dans ce cas, il n'y a plus d'autocomplete.

    La seule solution, c'est une fois la valeur saisie (soumission du formulaire ou autre) vérifier manuellement que la valeur existe belle et bien dans la source de données : sinon, blocage avec message d'avertissement.
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut
    Mais je veux que l'autoComplete reste , car j'ai une longue liste ?

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    En plaçant aussi la propriété AutoCompleteMode sur SuggestAppend et la propriété AutoCompleteSource sur ListItems. (propriété ComboboxStyle : DropDownList)
    Cela ccorrespond mieux à ton souhait, mais il me semble que parfois dans les saisies le comportement n'est pas celui que l'on attend.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut
    Merci "rv26t" , j'ai mis ce que tu m'as écrit , mais ce que je veux précisément , c'est que après que l'utilisateur fini l'écriture ,je vais appelé une méthode comme celle là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach(string item in ComboBox1.items)
    {
    if(item!=ComboBox1.Text)
    {
    MessageBox.Show(Mon message);
    ComboBox1.Text="";
    }
    }
    mais je ne sais dans quelle événement du ComboBox dois-je le mettre ? et merci d'aide

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Ton code ne peux pas fonctionner (tu n'as pas essayé ? ), car tu testes si tous les éléments correspondent à la saisie.

    Donc dans ce cas (si tu préféres utiliser la méthode de StringBuilder, pas besoin de placer les propriétés), il suffit de vérifier que la collection ne contient pas la saisie (ou vide) pour afficher le message, teste lorsque le contrôle perd le focus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            private void comboBox1_Leave(object sender, EventArgs e)
            {
                if (!comboBox1.Items.Contains(comboBox1.Text) && !(comboBox1.Text=="")) 
                {
                    MessageBox.Show("Mon message");
                    comboBox1.Focus();
                }
            }
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2013
    Messages : 67
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par rv26t Voir le message
    Ton code ne peux pas fonctionner (tu n'as pas essayé ? ), car tu testes si tous les éléments correspondent à la saisie.

    Donc dans ce cas (si tu préféres utiliser la méthode de StringBuilder, pas besoin de placer les propriétés), il suffit de vérifier que la collection ne contient pas la saisie (ou vide) pour afficher le message, teste lorsque le contrôle perd le focus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            private void comboBox1_Leave(object sender, EventArgs e)
            {
                if (!comboBox1.Items.Contains(comboBox1.Text) && !(comboBox1.Text=="")) 
                {
                    MessageBox.Show("Mon message");
                    comboBox1.Focus();
                }
            }
    Merci beaucoup c'est ça ce que je cherche (y)

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Pensez à marquer en résolue avec le bouton
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/11/2014, 09h07
  2. [DOM] Selected ! Comment définir un choix pour une liste déroulante
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/05/2008, 12h07
  3. Réponses: 3
    Dernier message: 08/05/2006, 16h18
  4. Réponses: 2
    Dernier message: 03/05/2006, 17h00
  5. Comment rappeler une fonction dans une liste déroulante
    Par strogos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2005, 23h54

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