Recuperer la valeur de ComboBox

Résolu
Signaler
Messages postés
8
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
22 décembre 2008
-
Messages postés
8
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
22 décembre 2008
-
Bonjour;
j'ai un p'tit soucie avec le C# pour l'utilisation d'une combobox.
En effet, quand je recupere la valeur selectionné apartir de la comboBox ,et la comparer avec une autre valeur de type int ;une erreur va generer ,et voici l'éreur     "Specified cast is not valid."
code:
if ((double)comboBox1.Items[comboBox1.SelectedIndex] == 0.1)
            j = 0;
MessageBox.Show("j=" + j + "\n a=" + comboBox1.Items[comboBox1.SelectedIndex]);
merci d'avance.

5 réponses

Messages postés
36
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
20 août 2009

Oui normal que tu ne passe pas dans ta condition puisque tu lui demande de comparer le numéros de ta liste de comboBox et cela ne peut-être qu'un entier, en clair :
tu as ta comboBox avec tes items dedans :
-choix1 -> va correspondre à 0 pour ton SelectedIndex
-choix2 -> va correspondre à 1
....
Donc pour ce que tu veux faire il bien que tu compare le contenu de ce choix, donc de tête ça va donner un truc du genre :

if ( (double.Parse(comboBox1.SelectedIndex.ToString())) == 0.1 )
          j++;

Comme ça là tu prend la valeur de ton choix que tu convertie en String (avec ToString()), pour pouvoir la convertir en double (avec double.Parse()), pour enfin pouvoir la comparer avec ton 0.1.
Messages postés
36
Date d'inscription
vendredi 11 mai 2007
Statut
Membre
Dernière intervention
20 août 2009

Salut,

Oui je crois que ton cast n'est pas bon :
if ((double)comboBox1.Items[comboBox1.SelectedIndex] == 0.1)
je crois que c'est plutôt comme tu as oublié des parenthèses :
if ((double)(comboBox1.Items[comboBox1.SelectedIndex]) == 0.1)
ou sinon essai de parser la valeur de ta comboBox, un truc du style :
if( (double.Parse(string)  == 0.1 );
Messages postés
8
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
22 décembre 2008

J'ai un autre pb aussi;
voici le code :
decimal a,b;
Valeur[] tab = (Valeur[])tabList.ToArray().Clone();//tab est un tableau de type structure valeur qui a deux param X et Y
 a = FonctionsStatistiques.A(tab, tabList.Count);/*Appelle de la fonction A*/
 b = FonctionsStatistiques.B(tab, tabList.Count);/*Appelle de la fonction B*/
for (int k = 0; k < tabList.Count; k++)
    tabybar[k] = a + b * tab[k].X;

Erreur :
Object reference not set to an instance of an object.
Messages postés
8
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
22 décembre 2008

merci pour votre réponse [../auteur/KERMA26/1059292.aspx kerma26];
j ai essayer avec ça et le problème de cast est réglé :
if(comboBox1.SelectedIndex == 0.1)
        j=j+1;
mais le programme n'exécute jamais la condition ,la valeur de j ne change pas pourtant la condition est verifié.
Messages postés
8
Date d'inscription
lundi 25 décembre 2000
Statut
Membre
Dernière intervention
22 décembre 2008

merci beaucoup.