如果填充了文本框,则启用按钮

时间:2016-07-30 15:24:00

标签: c#

我尝试编写一个按钮,以便在表单加载时禁用它,但是一旦文本框输入了文本就启用了该按钮。我的代码如下,可能很熟悉:

Public Form()
{
    InitializeComponent();
    this.button1.enabled = false;
}

private void textbox_TextChanged (object sender, EventArgs e)
{
button1.Enabled = !string.IsNullOrWhiteSpace(textbox.Text);
}

按钮确实已加载禁用,启用功能不会对文本输入起作用,我不确定问题是什么。重要的是模态形式。我想知道是否需要一个事件监听器(虽然我不确定它们是如何工作的。)

5 个答案:

答案 0 :(得分:2)

检查Designer.cs文件并确保在那里注册事件处理程序。像这样:

this.textBox.TextChanged += new System.EventHandler(this.textBox_TextChanged);

答案 1 :(得分:1)

这会有用吗?虽然我无法真正看到你的代码出现问题......

button1.Enabled = textbox.Text != "";

我希望这会有所帮助。

答案 2 :(得分:1)

可能不是您的问题的解决方案,但这将是对一台计算机执行的最快检查(至少如果您让JIT编译器优化您的代码):

button1.Enabled = textbox.Text.Length > 0;

答案 3 :(得分:0)

试试这个

private void Form1_Load(object sender, EventArgs e)
{
    button1.Enabled = false;
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
    if (string.IsNullOrEmpty(textBox1.Text))
    {
        button1.Enabled = true;
    }
}

答案 4 :(得分:0)

您可以在TextChanged的{​​{1}}属性中尝试以下任一项:

TextBox

或使用private void textBox1_TextChanged(object sender, EventArgs e) { if (textbox.Text.Length > 0) { button1.Enabled = true; } else button1.Enabled = false; } 方法:

string.IsNullOrEmpty

以下行:

private void textBox1_TextChanged(object sender, EventArgs e)
{  
    if (!string.IsNullOrEmpty(textbox.Text))
    {
        button1.Enabled = true;
    }
    else
        button1.Enabled = false;
}

如果它不适合您或者您收到错误,那可能是因为 .NET 4

中引入了IsNullOrWhiteSpace方法