【问题标题】:How can I select and unselect check boxes in Winform?如何在 Winform 中选择和取消选择复选框?
【发布时间】:2013-09-06 12:33:34
【问题描述】:

我的代码仅在 chckAll.Checked 时才执行,而不是选中所有复选框...我想要实现的是当未选中任何复选框时,在选择所有复选框后使 chckAll 未选中...。如果选中所有复选框,而不是选中 chckAll...我该怎么做?

private void chckAll_CheckedChanged(object sender, EventArgs e)
        {
            if (chckAll.Checked)
            {
                foreach (Control ctrl in checkBoxesPanel3.Controls)
                {
                    CheckBox chkboxes = ctrl as CheckBox;
                    if (chkboxes != null)
                    {
                        chkboxes.Checked = true;

                    }

                }

            }           

        }

【问题讨论】:

    标签: c# winforms checkbox


    【解决方案1】:

    将以下事件添加到除 chckAll 之外的所有其他复选框

    private void checkBox_CheckedChanged(object sender, EventArgs e)
    {
        CheckFlg = true;
        if (!CheckAllFlg)
        {
            chckAll.Checked = checkBoxesPanel3.Controls.OfType<CheckBox>().Where(x => x.Name != "chckAll").All(c => c.Checked);  
        }
        CheckFlg = false;
    }
    
    private void chckAll_CheckedChanged(object sender, EventArgs e)
    {
        CheckAllFlg = true;
    
        if (!CheckFlg)
        {
            foreach (CheckBox ctrl in checkBoxesPanel3.Controls.OfType<CheckBox>().Where(x => x.Name != "chckAll"))
            {
                ctrl.Checked = chckAll.Checked;
            }
        }
        CheckAllFlg = false;
    }
    

    你需要定义如下两个属性

    public partial class Form1
    {
        public bool CheckAllFlg { get; set; }
        public bool CheckFlg { get; set; }
    

    【讨论】:

    • 另外,如果所有复选框都被选中,那么 chckAll 被选中...我该怎么做?
    • 例如,我有 5 个复选框和一个 chckAll 复选框......使用您的代码复选框一个接一个?当我完成除 chckAll 之外的检查时,我也想自动选择 chckAll 框...
    • 你的chckAll复选框也在checkBoxesPanel3中吗?
    • 是的,它也在我的 checkBoxesPanel3 中
    • 好的,作为我的更新代码,您可以按照您提供的方式提供chckAll 复选框的名称,它会起作用
    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多