从几个组框中选中的唯一单选按钮中检索单选按钮标签和名称

时间:2014-08-24 23:32:18

标签: c# radio-button var groupbox

我有几个组合框,groupbox1 groupbox2 groupbox3,每个框都有几个单选按钮。 我想列出在各个组框中检查的单选按钮,其中包含radiobutton名称和文本标签。经过一些研究后我尝试了以下内容

    private void button15_Click(object sender, EventArgs e)
    {

        var checkedRadio = new[] { groupBox1, groupBox2, groupBox3 }
              .SelectMany(g => g.Controls.OfType<System.Windows.Forms.RadioButton>
                                                        ().Where(r => r.Checked));


        //print name
        foreach (var r in checkedRadio)
        {
            MessageBox.Show(r.Text, r.Name);
        }
}

然而,当按下按钮15选择无线电按钮后,没有任何反应。 (我不确定所有的参数,在这里编程新手,所以非常欢迎深刻的答案)

1 个答案:

答案 0 :(得分:0)

这是一个有效的例子。在groupBox1.Controls中,您有一个元素列表,通过迭代它们并检索它们的Checked状态,您可以将它们添加到列表中。 希望这有帮助!

    private void button1_Click(object sender, EventArgs e)
    {
        List<Control> checkedRB = new List<Control>();

        foreach (RadioButton rb in groupBox1.Controls)
        {
            if (rb.Checked)
                checkedRB.Add(rb);
        }

        foreach (RadioButton rb in groupBox2.Controls)
        {
            if (rb.Checked)
                checkedRB.Add(rb);
        }

        foreach (Control ctrl in checkedRB)
                Console.WriteLine(ctrl.Name);
    }