最干净的这样做的方法是迭代的所有复选框。这将检查所有的复选框窗体上当您检查1.并且还unchceck如果没有选择1.
// Register the checked changed event and point all to the same event handler
checkBox1.CheckedChanged += CheckBox_CheckedChanged;
checkBox2.CheckedChanged += CheckBox_CheckedChanged;
checkBox3.CheckedChanged += CheckBox_CheckedChanged;
private void CheckBox_CheckedChanged(object sender, EventArgs e)
{
if (sender is CheckBox == false) return;
var currentCheckBox = (CheckBox) sender;
foreach (var checkBox in this.Controls.OfType<CheckBox>().Where(a => a != currentCheckBox))
{
checkBox.Checked = currentCheckBox.Checked;
}
}
的所有复选框如果'checkBox9'的“全选”复选框 - 你的代码应工作,除非你有其他将它重新设置为“已检查”的事件处理程序,或者检查“错误”复选框,这对于控件使用“deafult”名称时并不罕见 – Fabio