2010-09-06 13 views

Odpowiedz

9

Może nie jest najszybszym sposobem, ale coś jak to powinno działać:

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

Użyj atrybutu "GroupName" do grupowania przycisków radiowych w grupę. To pozwoli im zachowywać się jak grupa. Będziesz nadal musiał je przesyłać osobno dla sprawdzenia statusu.

+0

Tak, są w grupie. Mam nadzieję znaleźć coś takiego jak GetSelectedRadioButton (groupName) – naveed

+0

Nie jestem tego świadomy. Następną najlepszą opcją byłoby, aby wszystkie pola wyboru w grupie podniosły to samo zdarzenie ze zmianą. W module obsługi zdarzeń wystarczy, że sprawdzisz nazwę kontrolki, która wywołała zdarzenie. –