将多个RadioButton值获取到一个TextBox中

时间:2016-04-07 18:34:03

标签: c# winforms

让我们想象一下,我有几个不同的盒子,每个盒子有多个RadioButtons。当用户从box1,box 2,box3等中选择RadioButton时,RadioButtons上会输入所有TextBox中的所选值。例如。在框2中选择的框2中选择了24,在框3中选择了20 - 它应该给出以下内容:A 24 20或A - 24 - 20.我已尝试使用以下代码为每个RadioButton但它只进入当时一个RadioButton的值。提前谢谢

if (RadioButton1.Checked) //If checked == true
{
   textBox1.Text = "12";
   //example
}

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式获取所有选中的单选按钮的文本:

var radios = this.Controls.OfType<GroupBox>()
                 .SelectMany(x => x.Controls.OfType<RadioButton>())
                 .Where(x => x.Checked == true)
                 .Select(x => x.Text);

this.textBoxText1.Text = string.Join("-", radios);

如果不需要返回结果的顺序,您可以使用TabIndex根据Namethis.Controls.OfType<GroupBox>().OrderBy(x=>x.TabIndex)等属性对组框进行排序,然后结果将按所需顺序排列。

答案 1 :(得分:0)

不只是设置.Text的{​​{1}}属性,只需使用TextBox运算符将字符串连接到它。

示例:

+=