我有几个组合框,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选择无线电按钮后,没有任何反应。 (我不确定所有的参数,在这里编程新手,所以非常欢迎深刻的答案)
答案 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);
}