选中和取消选中CheckBox列表

时间:2014-03-25 22:40:14

标签: c# checkbox

我已经能够使用checkAll(一个复选框)检查列表中的所有框,但似乎无法取消选中它们。

在foreach中,当我放入" industry.Checked = true"时,它会检查所有这些就好了。我还想通过取消选中checkAll框来取消选中所有内容。

    private void checkAll_CheckedChanged(object sender, EventArgs e)
    {
        List<CheckBox> industries = new List<CheckBox>();
        industries.Add(checkBasicIndustries);
        industries.Add(checkCapitalGoods);
        industries.Add(checkConsumerDurables);
        industries.Add(checkConsumerNonDur);
        industries.Add(checkConsumerServices);
        industries.Add(checkEnergy);
        industries.Add(checkFinance);
        industries.Add(checkHealthcare);
        industries.Add(checkMiscellaneous);
        industries.Add(checkPublicUtilities);
        industries.Add(checkTechnology);
        industries.Add(checkTransportation);

        foreach (CheckBox industry in industries)
        {
            if (industry.Checked = false)
            {
                industry.Checked = true;
            }

            else { industry.Checked = false; }

        }
    }

1 个答案:

答案 0 :(得分:2)

错字

if (industry.Checked = false)    // Assignment operator

=将值false分配给Checked属性 因此,您始终将所有CheckBox设置为false。

应该是

if (industry.Checked == false)   // Comparison operator

或只是

if (!industry.Checked)

但更好的是(正如下面Matthew Mcveigh所建议的那样)

foreach (CheckBox industry in industries)
    industry.Checked = !industry.Checked;

将代码缩减为一行