如果在Windows窗体中未选中C#,则取消选中“选中所有复选框”

时间:2017-08-29 10:15:22

标签: c# winforms checkbox

我点击它时有一个复选框它选中所有复选框这里的问题,当取消选中任何选中的复选框时,不会从select中删除所有我试过这段代码:

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

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

3 个答案:

答案 0 :(得分:1)

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

4-编写此代码:

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

答案 1 :(得分:0)

虽然你的问题不是那么清楚,但它可能会解决你的问题:

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

            }
        }
}

答案 2 :(得分:0)

最干净的方法是迭代所有复选框。当您选中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;
    }
}