使用复选框启用文本框

use*_*555 1 c# checkbox textfield

我在winforms中有一个应用程序正在尝试制作.这就是我希望它发生的方式:每当用户点击注册访问者按钮时,注册表格应该打开.工作良好.这是在这种情况下调用的函数:

private void Register_Visitor_Load(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)

在这个表单上我有一个文本字段放置,我想在表单加载时禁用.我写了一行禁用表单加载文本框:

textbox1.enabled = false;
Run Code Online (Sandbox Code Playgroud)

我将上面的行放在正常工作的加载函数中.现在我想根据选中的复选框启用我的textbox1.为此我写了代码:

CheckState state = checkBox1.CheckState;
            switch (state)
            {
                case CheckState.Checked:
                    {
                        textBox1.Enabled = true;
                        break;
                    }
                case CheckState.Indeterminate:
                case CheckState.Unchecked:
                    {
                        break;
                    }
Run Code Online (Sandbox Code Playgroud)

现在,当我将上面的代码放在页面加载函数中时,没有任何事情发生,这肯定会发生,因为该函数仅在表单加载时调用.什么是没有得到的是在哪里放置复选框代码,以便我的文本框在运行时启用.其他功能是响应按钮,但我想在这里它用于在用户选中复选框时立即启用运行时的文本字段.请帮我解释一下我将如何实现这一目标!

Dmi*_*nko 8

你可以使用CheckStateChanged事件; 因此,无论checkBox1选中/取消选中/灰显的原因,您都将textBox1正确启用/禁用

private void checkBox1_CheckStateChanged(object sender, EventArgs e) {
  textBox1.Enabled = (checkBox1.CheckState == CheckState.Checked);
}
Run Code Online (Sandbox Code Playgroud)