我想在将数据保存到数据库之前检查用户在文本框中写的内容。做这个的最好方式是什么?我想我总是可以写一些ifs或一些try-catch块,但我想知道是否有更好的方法。我已经阅读了有关验证事件的内容,但我不确定如何使用它们。
答案 0 :(得分:46)
有许多方法可以验证TextBox。您可以在每次击键,稍后或Validating
事件时执行此操作。
如果TextBox失去焦点,则会触发Validating
事件。例如,当用户单击其他Control时。如果您的设置e.Cancel = true
TextBox没有失去焦点。
MSDN - Control.Validating事件使用键盘(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无效。
查看Using Error Provider Control in Windows Forms and C#
答案 1 :(得分:9)
使用WinForms,您可以将ErrorProvider与Validating
事件结合使用来处理用户输入的验证。 Validating
事件提供了执行验证的钩子,ErrorProvider提供了一种很好的一致方法,可以为用户提供有关任何错误条件的反馈。
http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx