如何在文本框中有字符串时启用按钮?

时间:2012-10-26 10:22:03

标签: c# winforms

我在form2中有一个文本框和一个按钮。在form1中单击某个项目时,将显示form2。我希望在文本框为空时禁用form2中的按钮,但是当用户开始输入时,我想启用该按钮。

我尝试在initialisecomponent()之后在我的构造函数中使用if,但它不起作用:

if(textbox1.text != "")
{
   btnOne.Enabled = true;
}

我还尝试在初始化组件之后调用一个名为checkText()的方法,该组件使用do-while循环来检查:

do{
    btnOne.Enabled = true
  }
 while(textbox1.text != "");

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:6)

您需要使用活动。查看TextBox控件的TextChanged事件。

基本上你会想要这样的东西:

private void textbox1_TextChanged(object sender, EventArgs e)
{
    btnOne.Enabled = !string.IsNullOrEmpty(textbox1.Text);
}

如果您使用的是Visual Studio,则可以执行以下操作来添加事件代码。

  • 打开设计器视图
  • 选择TextBox控件
  • 查看“活动”窗口
  • 找到“TextChanged”事件
  • 双击值空间,系统会自动添加代码以供您使用

注意:此方法需要用户在事件触发前“失去焦点”TextBox控件。如果您想要一个按需类型的解决方案,请查看KeyUp事件

@Asif在检查空白字符时也提出了一个很好的观点。这是您对有效内容的调用,但如果您不想允许使用空格值,则可以使用IsNullOrWhiteSpace方法 - 但是,这需要您使用.Net Framework 4.0或更高版本< / p>

答案 1 :(得分:0)

在Windows窗体中使用Textbox已更改事件

答案 2 :(得分:0)

如果您不允许使用空格作为有效输入,则应使用string.IsNullOrWhiteSpace代替string.IsNullOrEmpty

textbox1.TextChanged += (sender, e)
{
    btnOne.Enabled = !string.IsNullOrWhiteSpace(textbox1.Text);
};
相关问题