Visual Studio C# - Reverse !启用每个复选框(如果未选中)

本文关键字:如果 复选框 Studio Reverse 启用 Visual | 更新日期: 2023-09-27 18:35:30

我在分组框中有一堆复选框。我想让它在选中一个时,所有其他都被禁用。我在 checkchanged 事件中将以下代码应用于分组框中的所有复选框,它执行我上面想要的操作,但是,当您取消选中该框时,我想撤消此操作。我该怎么做?

foreach (CheckBox chk in this.grpBreadType.Controls)
{
    if (!chk.Checked)
    {
        chk.Enabled = false;
    }

图片

当您选中某个框时

当您取消选中该框时:(

Visual Studio C# - Reverse !启用每个复选框(如果未选中)

这样的事情可能会做你想要的。

private void chkBox_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox tmp = (CheckBox)sender;
        bool tmpStatus = tmp.Checked;
        foreach (CheckBox chk in this.Controls.OfType<CheckBox>())
        {
            if (tmp.Checked)
            {
                chk.Enabled = false;
                tmp.Enabled = tmpStatus;
            }
            else
            {
                chk.Enabled = true;
                tmp.Enabled = true;
            }
        }
    }

您可以将所有复选框的 CheckChanged 事件指向此子。 可能也需要一些重构。