vb.net - 有没有更干净的方法来处理文本框验证事件

标签 vb.net winforms validation error-handling

我在表单上有20多个文本框,我想知道是否有一种更干净的方法可以用来处理这些控件的验证,而不是使用预期的验证事件处理程序。

我尝试过的是遍历窗体上的所有控件,以检查它们的正确有效值,如果该值无效,则在正确的控件上显示ErrorProvider,从而将20多个事件处理程序缩减为30行代码。此过程位于一个函数中,该函数将返回单击按钮时调用的true或false,如果返回true,则将执行更多逻辑。

我想知道这是否不合适,还是应该坚持验证事件处理程序

最佳答案

当您对所有(或大多数)文本框(如注释中所述)使用相同的验证规则时,可以为这些文本框的Validating事件分配一个处理程序,并在该处理程序中对其进行验证。例如:

Private Sub TXT_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) _
    Handles TextBox1.Validating, TextBox2.Validating, TextBox3.Validating

    'Find the validating control
    Dim txt As TextBox = DirectCast(sender, TextBox)

    'Check validation for that control
    If (txt.Text.Length > 10) Then

        'Set validation message if the state is invalid
        Me.ErrorProvider1.SetError(txt, "Maximum length of text is 10 characters.")

        'Say the state is invalid
        e.Cancel = True
    Else

        'Clear probable privious validation error for that textbox
        Me.ErrorProvider1.SetError(txt, String.Empty)
    End If
End Sub

关于vb.net - 有没有更干净的方法来处理文本框验证事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33844877/

相关文章:

c# - 将 List.FindAll() 与 lambda 一起使用的 VB.NET 语法是什么?

c# - 如何使 RichTextBox 具有平面外观?

c# - 带有每个字符串标签的 AutoCompleteStringCollection

c# - 我可以在 WinForms Pane 中使用 OpenFileDialog 吗?

python - 要求用户提供输入,直到他们给出有效的答复

validation - 哪些字符会使 URL 无效?

javascript - jQuery 验证按钮样式在提交时更改

VB.NET 换行更改

.net - 有没有一种简单的方法可以找到从一个目录到另一个 VB.NET 的路径

.net - 在.net中查找控件