C#验证winforms上文本框的输入

Roc*_*shy 27 c# validation winforms

我想在将数据保存到数据库之前检查用户在文本框中写的内容.做这个的最好方式是什么?我想我总是可以写一些ifs或一些try-catch块,但我想知道是否有更好的方法.我已经阅读了有关验证事件的内容,但我不确定如何使用它们.

dkn*_*ack 46

描述

验证TextBox的方法有很多种.您可以在每次击键,稍后或在Validating事件上执行此操作.

Validating如果TextBox失去焦点,则会触发该事件.例如,当用户单击其他Control时.如果您设置e.Cancel = trueTextBox不会失去焦点.

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;
}
Run Code Online (Sandbox Code Playgroud)

更新

您可以使用它ErrorProvider来可视化您的TextBox无效.检查在Windows窗体和C#中使用错误提供程序控件

更多信息


Chr*_*lor 9

使用WinForms,您可以将ErrorProvider与Validating事件结合使用来处理用户输入的验证.该Validating事件提供了执行验证的钩子,ErrorProvider提供了一种很好的一致方法,可以为用户提供有关任何错误条件的反馈.

http://msdn.microsoft.com/en-us/library/system.windows.forms.errorprovider.aspx