如何从单选按钮列表中获取文本值

时间:2010-09-05 20:32:40

标签: c# winforms radio-button

所以我有两个分组框,我想要的是从两个分组框中获取所选的单选按钮值。

如果它只是一个文本框,你可以去:

thisValue = textbox1.text

但我不知道怎么做单选按钮

3 个答案:

答案 0 :(得分:2)

要从单选按钮中获取值(假设您需要,而不是文本),您将获得Checked属性:

bool isChecked = radioButton1.Checked;

GroupBox中的单选按钮之间没有基于代码的关系(除了单选按钮的行为方式,以便一次只检查同一容器中的一个单选按钮);您的代码需要跟踪检查哪一个。

执行此操作的最简单方法可能是使组框内的单选按钮全部触发CheckedChanged事件的同一事件侦听器。如果您可以检查sender参数,以跟踪当前选择的那个参数。

示例:

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
        }
    }            
}

答案 1 :(得分:0)

这是WindowsForms Linq的例子 如果它不能正常工作你会得到这个想法

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;
}

答案 2 :(得分:0)

引用相同的点击事件触发器

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