【问题标题】:Disabling a checkbox when another checkbox is clicked单击另一个复选框时禁用一个复选框
【发布时间】:2019-10-24 23:20:11
【问题描述】:

当点击传统复选框时,我试图禁用薄而脆的复选框。由于我在 numericUpDown 值设置为 1 时启用了整个组,因此我将它们放在一个组中。当我单击传统复选框时,它不会禁用薄而脆的复选框。我正在使用 Windows 窗体应用程序

代码

        private void NudQuantity1_ValueChanged(object sender, EventArgs e)
        {

            if (NudQuantity1.Value == 0)
            {
                gbCheesePizza.Enabled = false;
            }
            else
            {
                gbCheesePizza.Enabled = true;
            }

            if (CBXTraditional1.Checked == true)
            {
                CBXthinandcrispy1.Enabled = false;
            }

        }

当我在组框外运行此代码时,它运行良好。

【问题讨论】:

  • 用户点击传统复选框时是否调用NudQuantity1_ValueChanged
  • 复选框的父容器是否被禁用?如果它被禁用,则无法启用此容器的子容器。
  • 我还想了解另一点。如果您必须在 traditionalthin and crispy 之间选择一个独特的选项,为什么要使用复选框而不是专门为处理这种情况而设计的单选按钮?

标签: c# winforms checkbox


【解决方案1】:

我认为这个块不应该在事件处理程序中

if (CBXTraditional1.Checked == true)
{
    CBXthinandcrispy1.Enabled = false;
}

这意味着,如果您没有对复选框进行其他事件处理,则仅当您更改 NudQuantity1 的值时才会执行此代码,因此当您之后单击复选框时它不会执行任何操作。

尝试使用Steve 提到的单选按钮。他们为你做这件事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 2011-05-24
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多