Switch avec les Items d'une ComboBox

Résolu
microraph Messages postés 24 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 18 mai 2010 - 18 févr. 2010 à 13:22
microraph Messages postés 24 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 18 mai 2010 - 19 févr. 2010 à 10:54
Bonjour,

je débute (depuis 6 semaines quasiment) dans le langage C# et je bloque un petit peu sur un problème : effectuer un Switch avec les différentes possibilités d'une ComboBox.

En effet, avec une série de if(...) ...; mon résultat est convenable mais il faut que ça fasse un peu plus "pro" et plus beau. Je pensais donc à un switch.

Voici mon code :

int i= 0;
switch ( comboBoxChoixDonnees.Items[i] )
{
case 0 :
comboBoxModeDeChasse.Enabled = true;
break;
case 1 :
comboBoxTypePiege.Enabled = true;
break;
default:
comboBoxTypeObservation.Enabled = true;
break;
}

Quelqu'un peut-il me dire pourquoi j'obtiens les erreurs suivantes :
Pour comboBoxChoixDonnees.Items[i] il me met :
"Erreur 1 La valeur d'un type intégral est attendue "

Pour les différents Case 0, Case 1 etc... il me met :
"Erreur 2 Une valeur de constante est attendue "


Merci beaucoup de votre aide.
A voir également:

2 réponses

rours Messages postés 61 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 24 février 2010
18 févr. 2010 à 13:51
Salut,

il me semble que ton switch n'est pas bon. Tu fais un switch (comboBoxChoixDonnees.Items[i]) qui doit te renvoyer je ne sais quoi, mais pas un int. Or apres tu fais un case 0 case 1 etc ... Donc il y a peu de chance que ça marche.

Je te conseil plutot de faire un comboBoxChoixDonnees.selectedIndex (pas sûr de la syntaxe), oubien un comboBoxChoixDonnees.SelectedItem.ToString() et tu fais un : case chaine1 case chaine2 .. , en plaçant les bonnes valeurs à la place de chaine1 chaine2 ... bien sûr.
3
microraph Messages postés 24 Date d'inscription dimanche 21 octobre 2007 Statut Membre Dernière intervention 18 mai 2010
19 févr. 2010 à 10:54
Désolé pour la réponse, si tardive mais j'ai travaillé d'aprem et je viens d'me lever :).


Merci beaucoup pour ton aide. Ca à fonctionner.
Pour faciliter la compréhension à ceux qui risque de se poser la même question, voici le code une fois tes modifs apportées.

switch (comboBoxChoixDonnees.SelectedItem.ToString())
{
case "Chasse" :
comboBoxModeDeChasse.Enabled = true;
break;
case "Piégeage" :
comboBoxModeDeChasse.Enabled = false;
etc......
}

J'ai un peu d'mal avec les selectItems, selectIndex, selectValue etc... car pour moi ils font tous la même chose, et je trouve pas vraiment d'aide concrète. Donc je test... ^^ Merci en tout cas.

Bon week-end
3
Rejoignez-nous