C# 禁用按钮,直到txtBox有效#
我希望禁用“提交”按钮,直到两个文本框中有一个值为止。我不知道该怎么办 由于这是WinForms,您应该监视文本框上的C# 禁用按钮,直到txtBox有效#,c#,winforms,C#,Winforms,我希望禁用“提交”按钮,直到两个文本框中有一个值为止。我不知道该怎么办 由于这是WinForms,您应该监视文本框上的TextChanged事件,并调用一个方法来更新按钮的启用状态(这里很有用) 下面的示例显示了一种简单的情况,在启用按钮之前,您希望文本框中包含内容 private void OnTextChanged(object sender, EventArgs args) { UpdateUserInterface(); } private void UpdateUserInt
TextChanged
事件,并调用一个方法来更新按钮的启用状态(这里很有用)
下面的示例显示了一种简单的情况,在启用按钮之前,您希望文本框中包含内容
private void OnTextChanged(object sender, EventArgs args)
{
UpdateUserInterface();
}
private void UpdateUserInterface()
{
this.myButton.Enabled = !string.IsNullOrWhiteSpace(this.textBox1.Text) &&
!string.IsNullOrWhiteSpace(this.textBox2.Text);
}
如果你想做更复杂和费时的事情来确定启用状态,你可能想考虑一些延迟按钮状态更新,直到打字完成。例如,一个具有小间隔的计时器,每次触发TextChanged
事件时都会重新启动,并在其自己的Tick
事件处理程序中停止,您最终在该处理程序中调用UpdateUserInterface
方法
旁注由于了解到这是一个WinForms应用程序,我将以下几点放在了搜索此信息的旁注中 对于WPF,您可以使用类似的方法,或者使用一些巧妙的绑定和适当的值转换器。不过我建议保持简单 对于ASP.NET,这可以通过javascript在客户端完成—附加到文本框的
onChange
事件并测试两者的值*
**感谢您提供的额外信息。*由于这是WinForms,您应该监视文本框上的
TextChanged
事件,并调用一个方法来更新按钮的启用状态(这里很有用)
下面的示例显示了一种简单的情况,在启用按钮之前,您希望文本框中包含内容
private void OnTextChanged(object sender, EventArgs args)
{
UpdateUserInterface();
}
private void UpdateUserInterface()
{
this.myButton.Enabled = !string.IsNullOrWhiteSpace(this.textBox1.Text) &&
!string.IsNullOrWhiteSpace(this.textBox2.Text);
}
如果你想做更复杂和费时的事情来确定启用状态,你可能想考虑一些延迟按钮状态更新,直到打字完成。例如,一个具有小间隔的计时器,每次触发TextChanged
事件时都会重新启动,并在其自己的Tick
事件处理程序中停止,您最终在该处理程序中调用UpdateUserInterface
方法
旁注由于了解到这是一个WinForms应用程序,我将以下几点放在了搜索此信息的旁注中 对于WPF,您可以使用类似的方法,或者使用一些巧妙的绑定和适当的值转换器。不过我建议保持简单 对于ASP.NET,这可以通过javascript在客户端完成—附加到文本框的
onChange
事件并测试两者的值*
**感谢您提供的额外信息。*在Winfoems或WPF中,使用单个处理程序钩住两个文本框的TextChanged事件。在该处理程序中,查看两个文本框的当前文本(但不要深入太深,因为每次击键都会触发事件,因此深入验证将减慢UI响应),如果文本不是空的或只有空白,则启用按钮;否则,禁用它
在ASP.NET中,您需要使用JavaScript。DOM中的文本框有一个类似的OnChanged事件,您可以为其分配一个Javascript函数,该函数将执行与WinForms中类似的任务。要小心,因为浏览器可以在禁用JavaScript的情况下运行,所以您仍然需要在服务器端检查null,并确保默认情况下未禁用该按钮(仅由JavaScript禁用,使用OnChanged函数或在文档加载时运行的某个功能)。在Winfoems或WPF中,使用单个处理程序钩住两个文本框的TextChanged事件。在该处理程序中,查看两个文本框的当前文本(但不要深入太深,因为每次击键都会触发事件,因此深入验证将减慢UI响应),如果文本不是空的或只有空白,则启用按钮;否则,禁用它
在ASP.NET中,您需要使用JavaScript。DOM中的文本框有一个类似的OnChanged事件,您可以为其分配一个Javascript函数,该函数将执行与WinForms中类似的任务。要小心,因为浏览器可以在禁用JavaScript的情况下运行,所以您仍然需要在服务器端检查null,并确保默认情况下按钮未被禁用(仅由JavaScript禁用,使用OnChanged函数或在文档加载时运行的某个功能)。WinForms?ASP.NET?还有别的吗?WinForms?ASP.NET?还有什么?在asp.net中,这可以通过javascript在客户端完成—附加到文本框的
onChange
事件并测试两者的值。在asp.net中,这可以通过javascript在客户端完成—附加到文本框的onChange
事件并测试两者的值。