【问题标题】:Get Multiple RadioButton Values into one TextBox将多个 RadioButton 值放入一个 TextBox
【发布时间】:2016-04-07 18:34:02
【问题描述】:

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

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

【问题讨论】:

  • 似乎有帮助:textBox1.Text += rdbtn.Text;但是,当我进行更正并检查不同的单选框时,先前选择的值将保留在文本框中,并添加新选择的值;它不会取代前一个。此外,在所有字符之间留出空间会很棒。谢谢

标签: c# winforms


【解决方案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);

如果不希望返回结果的顺序,您可以使用 this.Controls.OfType&lt;GroupBox&gt;().OrderBy(x=&gt;x.TabIndex) 根据 TabIndexName 等属性对组框进行排序,然后结果将按所需顺序。

【讨论】:

  • 你可以使用这样的 linq 查询来得到想要的结果。
  • 我终于实现了这段代码,这正是我所需要的,干杯。感谢您的帮助
【解决方案2】:

而不仅仅是设置TextBox.Text 属性,只需使用+= 运算符将字符串连接到它。

例子:

textBox1.Text += "12";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多