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