2010-09-06 14 views

Répondre

9

Peut-être pas le moyen le plus rapide, mais quelque chose comme cela devrait fonctionner:

private RadioButton GetSelectedRadioButton(string groupName) 
{ 
    return GetSelectedRadioButton(Controls, groupName); 
} 

private RadioButton GetSelectedRadioButton(ControlCollection controls, string groupName) 
{ 
    RadioButton retval = null; 

    if (controls != null) 
    { 
     foreach (Control control in controls) 
     { 
      if (control is RadioButton) 
      { 
       RadioButton radioButton = (RadioButton) control; 

       if (radioButton.GroupName == groupName && radioButton.Checked) 
       { 
        retval = radioButton; 
        break; 
       } 
      } 

      if (retval == null) 
      { 
       retval = GetSelectedRadioButton(control.Controls, groupName); 
      } 
     } 
    } 

    return retval; 
} 
0

Utilisez l'attribut "GroupName" pour grouper des boutons radio dans un groupe. Cela les aidera à se comporter en groupe. Vous devrez toujours les interroger individuellement pour vérifier l'état.

+0

Oui, ils sont dans un groupe. J'espère trouver quelque chose comme GetSelectedRadioButton (groupName) – naveed

+0

Je ne suis pas au courant de quelque chose comme ça. La meilleure alternative suivante serait de faire en sorte que toutes les cases d'un groupe déclenchent le même événement checkchanged. Dans le gestionnaire d'événements, tout ce que vous avez à faire est de vérifier le nom du contrôle qui a déclenché l'événement. –