使用复选框启用文本框

时间:2013-12-12 06:38:26

标签: c# checkbox textfield

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

private void Register_Visitor_Load(object sender, EventArgs e)

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

textbox1.enabled = false;

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

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

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

5 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:0)

您将代码置于错误的事件中。

而不是将pageload代码放在chekchange复选框的事件上。

这对你有帮助。

private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
        if (((CheckBox)sender).Checked)
        {
            textBox1.Enable=true;
        }
        else
        {
            textBox1.Enable=false;
        }
}

答案 2 :(得分:0)

将上述代码放在处理事件复选框的函数中。 在您的情况下,它是checkchanged状态。

答案 3 :(得分:0)

你可以试试这个:

 private void checkBox1_Click(object sender, EventArgs e)
 {

        if (checkBox1.Checked)
        {
            textBox1.Enabled = false;
        }
        else
        {
            textBox1.Enabled = true;
        }
 }

答案 4 :(得分:0)

我做了一些上述答案的混合,它运作得很好。我希望在加载表单时禁用按钮的状态,但如果用户选中一个框则启用,这是代码:

$._data(element).events