【发布时间】:2020-10-31 09:17:57
【问题描述】:
我正在编写一个 C# Forms 应用程序。 我的表单上有两个不同的面板,我正在两个面板上创建动态复选框。我想做的是:如果我选中 panel1 上的特定复选框,我想禁用/启用 panel2 上的特定复选框。
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;
}
}
}
}
我的代码没有做我想做的事。一键禁用和启用复选框。它正在禁用 Panel2 中的所有复选框我只想禁用一个特定的复选框。
【问题讨论】:
-
您正在循环通过面板中的所有控件并禁用或启用所有复选框。您是否有逻辑来确定启用或禁用哪个特定复选框?
-
您应该使用复选框的 checedChanged 事件。 docs.microsoft.com/en-us/dotnet/api/…
-
我想说你可以使用checkbox1的checked事件来禁用checkbox2,但是如果panel1中的哪个复选框被选中,你怎么知道panel2中的哪个复选框被禁用?
-
我正在使用 checkedChanged 事件。我的表单连接到数据库并获取我的数据库的值并创建以值作为名称的复选框。例如,我的第一个复选框称为 Car。如果我单击此复选框,我想禁用我的 panel2 上的 Checkbox Bcylist。
标签: c# winforms checkbox panel