如果选中其他复选框,如何禁用checkBox c

时间:2015-09-28 15:14:13

标签: c# checkbox

我的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 

2 个答案:

答案 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;
                }
            }