我正在编写一个C#窗体应用程序。我的窗体上有两个不同的面板,我正在这两个面板上创建动态复选框。我想做的是:如果我选中了panel 1上的特定复选框,我希望禁用/启用panel 2上的特定复选框。
foreach (Control checkbox_panel1 in checkBoxPanel1.Controls)
{
foreach (Control checkbox_panel2 in checkBoxPanel2.Controls)
{
if (checkbox_panel1 is CheckBox)
{
CheckBox cb_p1 = (CheckBox)checkbox_panel1;
CheckBox cb_p2 = (CheckBox)checkbox_panel2;
if (cb_p1.Checked)
{
cb_p2.Enabled = false;
}
else
{
cb_p2.Enabled = true;
}
}
}
}
“我的代码”没有按照我的要求执行操作。它只需要单击一下即可禁用和启用复选框。而且它禁用了Panel 2中的所有复选框。我只希望禁用一个特定的复选框。
3条答案
按热度按时间pcww981p1#
wvyml7n52#
您需要在创建CheckBox时设置其.Name属性:
很明显,你的代码会有所不同,因为你是从数据库中阅读值的。
然后,在创建它们之后,您希望将“Car”链接到“Bcylist”:
使用此Helper方法:
现在当你选中“汽车”时,“Bcylist”将变得禁用。当你取消选中“汽车”时,“Bcylist”将再次启用。
如果关于“链接”的信息在数据库本身中,那么您可以自动化这个过程,而不是将“Car”和“Bcylist”硬编码到
LinkCheckBoxes()
调用中。polkgigr3#
场景:两个复选框控制另外三个复选框。checkbox1selected所有从属复选框都将被选中。如果任何一个从属复选框未被选中,则主复选框将被取消选中并重新分配给另一个复选框。
注:根据需要替换所有函数和组件名称。另外,将事件添加到组件中