C# rbtn dans gbx

McLawliet Messages postés 6 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 22 février 2010 - 15 févr. 2010 à 19:47
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 16 févr. 2010 à 09:51
Bonsoir.

J'ai fait un projet en C# avec des radio button dans des group box.

Voilà j'aimerais que vous me donniez une ligne de code qui me permette de savoir quel radio button de la group box est checked, sans avoir à faire if, else if, else if, else if, else.

Merci d'avance.

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
15 févr. 2010 à 22:33
Salut,

Regardes les evenements click de chaque control
et ensuite tu fais un cast pour retrouver le nom du controle.

regardes ici

Bon dev
0
McLawliet Messages postés 6 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 22 février 2010
16 févr. 2010 à 09:01
Avec un Switch case je peux ?

Merci
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 50
16 févr. 2010 à 09:51
nhervagault parle de "cast" (une manière de changer le type d'un objet (pour peu qu'il puisse être considéré comme un objet du nouveau type), et non de "case".

Un switch / case est purement et simplement la même chose qu'une série de if, ce n'est donc pas la solution.

Ce dont parle Nhervagault, c'est de créer une (et une seule) méthode appelée lors de l'événement Click de chaque bouton.

Or le prototype d'une telle méthode est
void NomDeLaMethode(object sender, EventArgs e);

la variable e correspond donc à des informations complémentaires sur l'événement tandis que la variable sender contient l'objet ayant déclenché cet événement (en l'occurrence le radiobutton sur lequel tu as cliqué).

Cependant, afin que cette méthode puisse être appelée par n'importe quel composant, sender est considéré comme un object et non un radiobutton.
Mais tu sais (puisque c'est ton code) qu'il s'agit d'un radiobutton. Donc tu vas considérer ton objet sender comme tel en faisant un cast (comme l'exemple dans le lien que Nhervagault t'a donné) :

RadioButton monRadioButtonCocheCarJAiCliqueDessus = sender as RadioButton;

De là, tu n'as plus qu'à faire ce que tu veux sur l'objet récupéré.

NB : Si sender ne peut pas être cast en RadioButton, la valeur renvoyée (donc en l'occurrence la valeur de monRadioButtonCocheCarJAiCliqueDessus) est null.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0