C#正在验证winforms上文本框的输入
本文关键字:文本 输入 winforms 验证 | 更新日期: 2023-09-27 18:20:37
在将文本框保存到数据库之前,我想检查用户在文本框中写的内容。最好的方法是什么?我想我总是可以写一些if或一些try-catch块,但我想知道是否有更好的方法。我读过一些关于验证事件的文章,但我不确定如何使用它们。
描述
有很多方法可以验证TextBox。您可以在每次击键时、以后或Validating
事件中执行此操作。
如果您的TextBox失去焦点,则会触发Validating
事件。例如,当用户单击其他控件时。如果设置e.Cancel = true
,则TextBox不会失去焦点。
MSDN-Control.Validing Event当您使用键盘(TAB、SHIFT+TAB等)、调用Select或SelectNextControl方法或将ContainerControl.ActiveControl属性设置为当前窗体来更改焦点时,焦点事件按以下顺序发生
输入
GotFocus
离开
正在验证
已验证
LostFocus
使用鼠标或调用focus方法更改焦点时,焦点事件按以下顺序发生:
输入
GotFocus
LostFocus
离开
正在验证
已验证
示例验证事件
private void textBox1_Validating(object sender, CancelEventArgs e)
{
if (textBox1.Text != "something")
e.Cancel = true;
}
更新
您可以使用ErrorProvider
来可视化您的TextBox无效。在Windows窗体和C#中使用错误提供程序控制进行检查
更多信息
- MSDN-Control.Validing事件
- MSDN-ErrorProvider组件(Windows窗体)
- 在Windows窗体和C中使用错误提供程序控件#
使用WinForms,您可以将ErrorProvider与Validating
事件一起使用,以处理用户输入的验证。Validating
事件提供了执行验证的钩子,ErrorProvider提供了一种很好的一致性方法,可以向用户提供有关任何错误条件的反馈。
http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx