我尝试编写一个按钮,以便在表单加载时禁用它,但是一旦文本框输入了文本就启用了该按钮。我的代码如下,可能很熟悉:
Public Form()
{
InitializeComponent();
this.button1.enabled = false;
}
private void textbox_TextChanged (object sender, EventArgs e)
{
button1.Enabled = !string.IsNullOrWhiteSpace(textbox.Text);
}
按钮确实已加载禁用,启用功能不会对文本输入起作用,我不确定问题是什么。重要的是模态形式。我想知道是否需要一个事件监听器(虽然我不确定它们是如何工作的。)
答案 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
方法