2010-09-05 14 views

Répondre

2

Pour obtenir la valeur (en supposant que vous voulez que le valeur, pas le texte) sur un bouton radio, vous obtenez la Checked propriété:

bool isChecked = radioButton1.Checked; 

Il n'y a pas de relation basée sur le code entre t Les boutons radio dans un GroupBox (autres que les boutons radio se comportent de manière à ce qu'un seul des boutons radio dans le même conteneur soit vérifié à la fois); votre code devra garder trace de celui qui est vérifié. La manière la plus simple de le faire est peut-être de faire en sorte que les boutons radio dans une boîte de groupe déclenchent tous le même écouteur d'événements pour l'événement CheckedChanged. Dans le cas où vous pouvez examiner l'argument sender pour garder une trace de celui qui est actuellement sélectionné.

Exemple:

private enum SearchMode 
{ 
    TitleOnly, 
    TitleAndBody, 
    SomeOtherWay 
} 
private SearchMode _selectedSearchMode; 
private void SearchModeRadioButtons_CheckedChanged(object sender, EventArgs e) 
{ 
    RadioButton rb = (RadioButton)sender; 
    if (rb.Checked) 
    { 
     if (rb == _radioButtonTitleOnly) 
     { 
      _selectedSearchMode = SearchMode.TitleOnly; 
     } 
     else if (rb == _radioButtonTitleAndBody) 
     { 
      _selectedSearchMode = SearchMode.TitleAndBody; 
     } 
     else 
     { 
      // and so on 
     } 
    }    
} 
0

c'est WindowsForms Linq exemple si elle ne vous travailleriez pas exactement eu l'idée

RadioButton rb = null; 
RadioButton checkedRB = groupBox1.Controls.FirstOrDefault(
c => (rb = c as RadioButton) != null && rb.Checked) as RadioButton; 

if (checkedRB != null) 

{ 
this.Text = checkedRB.Text; 
} 
0

référence à un même événement déclencheur clic

private void rb_Click(object sender, EventArgs e) { 
    thisValue = ((RadioButton)sender).Text; 
}