当windows窗体中有一个复选框为"取消选中C#"时,取消选中"全选"复选框



我有一个复选框,当你点击它时,它会选中所有复选框,这里的问题是,当取消选中任何复选框时,都没有从全选中删除。我尝试了这个代码:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == false) 
checkBox9.Checked = false;
}

但当我选中任何复选框时,它会删除所有复选框我想取消选中全选而不是全选复选框

1-在项目中添加计时器。2-在"表单加载"事件上启动计时器。3-创建计时器刻度事件。

4-写下这个代码:

checkBox1.Checked != checkBox2.Checked
checkBox2.Checked != checkBox1.Checked

虽然您的问题不太清楚,但它可能会解决您的问题:

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if (!CheckBox1.Checked)
{
if (CheckBox2.Checked)
{
CheckBox2.Checked = false;
}
}
}

最干净的方法是遍历所有复选框。当您选中1时,这将选中表单上的所有复选框。并且在取消选中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;
}
}