我在表单上有20多个文本框,我想知道是否有一个更清晰的方法可以用来处理这些控件的验证,而不是使用预期的验证事件处理程序。
我试过循环遍历表单上的所有控件,检查它们是否有正确的有效值,如果值无效则在适当的控件上显示ErrorProvider,从而将20多个事件处理程序减少到30行码。这个过程是一个函数,它将返回按钮单击时调用的true或false,如果返回true,将继续使用更多逻辑。
我想知道这是不正确的还是我应该坚持使用验证事件处理程序
答案 0 :(得分:0)
当您对所有(或大部分)文本框使用相同的验证规则时(如注释中所述),您可以为这些文本框的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