获取是否选中了组框中的任何单选按钮
本文关键字:任何 单选按钮 是否 获取 | 更新日期: 2023-09-27 18:02:00
我有一个Windows窗体应用程序,我有几个单选按钮存储在一个GroupBox
。我需要根据所选的单选按钮启用不同的GroupBox
。
groubBox.Enter
似乎不是我正在寻找的EventHandler
。是否有办法做到这一点我的方式,或者我必须为每个radiobutton.CheckedChanged
创建一个处理程序?
编辑
应用程序的工作流是:
一个文件被选中→GroupBox
被启用→一个Panel
/ComboBox
, TextBox
被启用取决于被选中的RadioButton
让gbRadioButtons
作为GroupBox的名称,然后您可以遍历该特定GroupBox中的每个radioButton,并使用以下代码检查它是否被选中(包括您想要检查的代码):
bool isAnyRadioButtonChecked = false;
foreach (RadioButton rdo in gbRadioButtons.Controls.OfType<RadioButton>())
{
if (rdo.Checked)
{
isAnyRadioButtonChecked=true;
break;
}
}
if (isAnyRadioButtonChecked)
{
// Code here one button is checked
}
else
{
// Print message no button is selected
}
创建CheckedChanged
事件处理程序,一个用于所有单选按钮
设置RadioButton.Tag
为
GroupBox
it应答者例如在构造函数
中public YourForm()
{
radioButton1.Tag = groupBox1;
radioButton2.Tag = groupBox2;
radioButton3.Tag = groupBox3;
radioButton1.CheckedChanged += radioButtons_CheckedChanged;
radioButton2.CheckedChanged += radioButtons_CheckedChanged;
radioButton3.CheckedChanged += radioButtons_CheckedChanged;
}
void radioButtons_CheckedChanged(object sender, EventArgs e)
{
RadioButton button = sender as RadioButton;
if (button == null) return;
GroupBox box = button.Tag as GroupBox
if (box == null) return;
box.Enabled = button.Checked;
}
启用GroupBox
将启用其中的所有子控件