我的Windows窗体应用程序中有一个checkBox数组。我想知道如果检查该数组中的一个或多个checkBox,有没有办法禁用该复选框数组?
例如: 如果选中A,则禁用B,C,D,E 如果检查A和C,则禁用B,D,E
很抱歉这个混乱。在以下示例中,检查A,C,E。我想要的是B,D然后是禁用
[x]A []B [x]C []D [x]E
这是我的数组列表
另一个例子:
此示例显示检查D,然后应禁用A,B,C和E
[]A []B []C [x]D []E
代码:
CheckBox[] myCheckBoxArray = new CheckBox[5];
myCheckBoxArray[0] = checkBoxA
myCheckBoxArray[1] = checkBoxB
myCheckBoxArray[2] = checkBoxC
myCheckBoxArray[3] = checkBoxD
myCheckBoxArray[4] = checkBoxE
答案 0 :(得分:0)
我认为你所追求的是一个简单的“如果'语句:
if (checkBoxA.Checked == true)
{
checkBoxB.Checked = false;
....
}
依此类推。您还可以使用'&&'同时检查多个方框。运营商,像这样:
if (checkBoxA.Checked == true && checkBoxB.Checked == false)
{ do.something(); }
要将其应用于您的数组,只需附加以下内容:
if (checkBoxA.Checked == true)
{
myCheckBoxArray[i].Checked = false;
}
您无法按照您要求的方式对数组的各个部分进行分组 - 如果某些数组成员遇到某种情况,您可能会调用某些数组成员,但是您不一定知道 他们的状况,然后再更改他们的“已检查”状态。状态。在此上下文中,您必须逐个更改整个数组或每个复选框。或者,在if语句中创建数组。然而,这是一个昂贵的过程,而且毫无意义。
答案 1 :(得分:0)
我已经解决了我的问题
CheckBox[] checkBox1 = new CheckBox[5];
checkBox1 [0] = checkBoxA;
checkBox1 [1] = checkBoxB;
checkBox1 [2] = checkBoxC;
checkBox1 [3] = checkBoxD;
checkBox1 [4] = checkBoxE;
foreach(CheckBox items in checkBox1 )
{
if (!items.Checked)
{
items.Enabled = false;
}
}