我已经能够使用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; }
}
}
答案 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;
将代码缩减为一行