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

ife*_*olz 3 c# winforms

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

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

if(textbox1.text != "")
{
   btnOne.Enabled = true;
}
Run Code Online (Sandbox Code Playgroud)

我也试过调用一个checkText()在初始化组件之后调用的方法,它使用do-while循环来检查:

do{
    btnOne.Enabled = true
  }
 while(textbox1.text != "");
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

mus*_*fan 6

你需要使用一个事件.查看控件的TextChanged事件TextBox.

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

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

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

  • 打开设计师视图
  • 选择TextBox控件
  • 查看"事件"窗口
  • 找到"TextChanged"事件
  • 双击值空间,代码将自动添加,供您使用

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

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