Recuperer la valeur de ComboBox

Résolu
cs_algsoft Messages postés 8 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 22 décembre 2008 - 10 déc. 2008 à 13:10
cs_algsoft Messages postés 8 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 22 décembre 2008 - 17 déc. 2008 à 20:57
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

kerma26 Messages postés 36 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 20 août 2009
10 déc. 2008 à 17:13
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.
3
kerma26 Messages postés 36 Date d'inscription vendredi 11 mai 2007 Statut Membre Dernière intervention 20 août 2009
10 déc. 2008 à 13:58
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 );
0
cs_algsoft Messages postés 8 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 22 décembre 2008
10 déc. 2008 à 15:49
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.
0
cs_algsoft Messages postés 8 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 22 décembre 2008
10 déc. 2008 à 16:57
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é.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_algsoft Messages postés 8 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 22 décembre 2008
17 déc. 2008 à 20:57
merci beaucoup.
0
Rejoignez-nous