我有一个Windows窗体应用程序,其中有几个单选按钮存储在GroupBox
中。我需要根据所选的单选按钮启用不同的GroupBox
。
groubBox.Enter
似乎不是我要找的EventHandler
。有没有办法按我的方式去做,或者我必须为每个radiobutton.CheckedChanged
创建一个处理程序?
修改
该应用程序的工作流程为:
选择了一个文件→GroupBox
已启用→Panel
/ ComboBox
,TextBox
启用,具体取决于所选的RadioButton
答案 0 :(得分:1)
让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
}
答案 1 :(得分:0)
创建CheckedChanged
事件处理程序,一个用于所有radiobuttons
设置RadioButton.Tag
以引用其GroupBox
受访者
例如在构造函数
中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
将启用其中的所有子控件