我在form2中有一个文本框和一个按钮。在form1中单击某个项目时,将显示form2。我希望在文本框为空时禁用form2中的按钮,但是当用户开始输入时,我想启用该按钮。
我尝试在initialisecomponent()之后在我的构造函数中使用if,但它不起作用:
if(textbox1.text != "")
{
btnOne.Enabled = true;
}
我还尝试在初始化组件之后调用一个名为checkText()
的方法,该组件使用do-while循环来检查:
do{
btnOne.Enabled = true
}
while(textbox1.text != "");
有人可以帮忙吗?
答案 0 :(得分:6)
您需要使用活动。查看TextBox
控件的TextChanged事件。
基本上你会想要这样的东西:
private void textbox1_TextChanged(object sender, EventArgs e)
{
btnOne.Enabled = !string.IsNullOrEmpty(textbox1.Text);
}
如果您使用的是Visual Studio,则可以执行以下操作来添加事件代码。
注意:此方法需要用户在事件触发前“失去焦点”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);
};