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