3

我有一个带有几个单选按钮的表单,这些单选按钮假设代表不同的整数值。

1) 是否有一种内置方法可以将值“置于”单选按钮的“后面”?一个例子:

RadioButton rad = new RadioButton();
rad.Value = 5; // This is what im trying to achieve.

2)我有几个在逻辑上相互关联的单选按钮,我想知道选择了哪一个(没有将它们放在 GroupBox 控件中)并获取该单选按钮的选定值。注意:我想“迭代”这 3 个控件并获取选定的控件,而不是执行 3 个 IF 语句。一个例子:

RadioButton radColor1 = new RadioButton();
RadioButton radColor2 = new RadioButton();
RadioButton radColor3 = new RadioButton();

// ...

RadioButton radSelected = ?? // Get selected Radio Button from the 3 above.
//here i can get to radSelected.Value
4

3 回答 3

5

如果要为控件分配任意值,请使用其Tag属性:

radColor1.Tag = 5;

但是为什么你不能简单地使用该Checked属性呢?

if (radColor1.Checked)
    //do something
if (radColor2.Checked)
    //do something else
//...however many more you need to check

编辑:迭代...

foreach (Control c in this.Controls)
{
    if (c is RadioButton)
    {
        if (((RadioButton)c).Checked)
        //do something
    }
}
于 2013-06-06T13:06:14.580 回答
2

将这些无线电 btns 放入 astackPanel并迭代以检查If Checked& 而不是使用tag属性来存储每个 btns 的值radio button

foreach(var child in stack.Children)
{
    if((child as RadioButton).Checked == true)
    var value = (child as RadioButton).tag;
}
于 2013-06-06T13:11:19.857 回答
2
RadioButton radSelected = (from RadioButton rb in this.Controls
                          where rb.Checked 
                          select rb).SingleOrDefault();
于 2013-06-06T13:24:52.213 回答