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

本文关键字:文本 输入 winforms 验证 | 更新日期: 2023-09-27 18:20:37

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

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

描述

有很多方法可以验证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