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 :

controle d'existence de valeur dans un comboBox : boucle infinie


Sujet :

Windows Forms

  1. #1
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut controle d'existence de valeur dans un comboBox : boucle infinie
    Bonjour !

    Je suis en train de développer la partie cliente d'un projet pour mon bts.
    Je possède une liste comboBox contenant des objets de type chaine que je voudrai ajouter dans une deuxième comboBox. Pour éviter de mettre des doublons je vérifie si la valeur que je veux insérer de la liste 1 n'est pas déjà dans la liste 2. Le problèmes est que j'ai une boucle infinie lors de cette vérification mais uniquement lorsque j'essaie de mettre une deuxième valeur dans la liste 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    private void btnAdd_Click(object sender, EventArgs e)
            {
                if (existe(listBox1.Text)) // test de l'existence de la valeur dans la liste 2
                {
                    MessageBox.Show("La classe est déjà affectée à l'enseignant");
                }
                else
                {
                    listBox2.Items.Add(listBox1.Text); // on ajoute la nouvelle valeur dans la liste 2
                    //listBox2.Refresh(); j'ai essayé ça des fois que, mais rien
                }
            }
     
            private bool existe(string value)
            {
                trouver = false;
                int i = 0;
     
                //MessageBox.Show(listBox2.Items.Count.ToString()); messagebox pour divers contrôle effectué
     
                while ( !trouver && i < listBox2.Items.Count )
                {
                    if (listBox2.Items[i].ToString().CompareTo(value) == 0)
                    {
                        trouver = true;
                    }
                    else
                    {
                        trouver = false;
                        i = i++;
                    }
                }
                return trouver;
            }

  2. #2
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Waow! Jolie prise de tête...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private void btnAdd_Click(object sender, EventArgs e)
    {
    	//if (existe(listBox1.Text)) // test de l'existence de la valeur dans la liste 2
    	if (listBox2.Items.IndexOf(listBox1.Text) > -1)
    	{
    		MessageBox.Show("La classe est déjà affectée à l'enseignant");
    	}
    	else
    	{
    		listBox2.Items.Add(listBox1.Text); // on ajoute la nouvelle valeur dans la liste 2
    		//listBox2.Refresh(); j'ai essayé ça des fois que, mais rien
    	}
    }

  3. #3
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Tout d'abord merci pour ta réponse et ta rapiditité.

    Je tiens à m'excuser de vous avoir déranger pour un truc aussi bête auquel je n'avais pas pensé. Ma prof non plus d'ailleurs...

    Encore merci.

  4. #4
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    Bah de rien ;-) Ca arrive de passer à côté mais dit toi que le framework est plutot bien foutu et qu'il offre beaucoup de possibilité "commune" telle que vérifier la présence d'un item dans la liste... N'hésite pas à jetter un oeil à toutes les méthodes et membres des controles que tu utilises.

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

Discussions similaires

  1. Vérifier l'existence d'une valeur dans un ComboBox
    Par logiciel_const dans le forum Composants VCL
    Réponses: 6
    Dernier message: 08/03/2008, 09h07
  2. Réponses: 28
    Dernier message: 07/06/2006, 13h30
  3. Réponses: 12
    Dernier message: 30/05/2006, 15h57
  4. [VB.net] Affichage valeur dans une ComboBox
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/04/2006, 15h32
  5. ajouter une valeur dans une combobox
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 10h58

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