Private Sub NullValidation(sender As Object, e As EventArgs) Handles FirstNameTextBox.Validating,
LastNameTextBox.Validating, FatherNameTextBox.Validating,
If String.IsNullOrWhiteSpace(sender.Text) Then
ErrorProvider1.SetError(sender, "Text box is empty ")
End If
End Sub
我想从此事件处理程序(在按钮单击处理程序中)检查我的控件验证。但是因为它需要发送者和e参数,所以它不会起作用。我该怎么做?
因为控件的数量超过了我在这里写的数量(不仅仅是FirstNameTextBox和LastNameTextBox),所以为每一个编写验证代码似乎都不是一个好的解决方案。但是因为它需要发送者和e参数,所以它不会起作用。我该怎么做?
答案 0 :(得分:3)
首先应该设置option strict on。您没有使用正确的方法签名。 validating事件定义为:
Public Delegate Sub CancelEventHandler(ByVal sender As Object, ByVal e As CancelEventArgs)
将e
的类型从EventArgs
更改为CancelEventArgs
。您可能需要导入名称空间System.ComponentModel
。然后将e.Cancel
设置为True
,表示验证未通过。
Private Sub NullValidation(sender As Object, e As CancelEventArgs) Handles FirstNameTextBox.Validating, LastNameTextBox.Validating, FatherNameTextBox.Validating
Dim ctl As Control = TryCast(sender, Control)
If ((Not ctl Is Nothing) AndAlso String.IsNullOrWhiteSpace(ctl.Text)) Then
e.Cancel = True
Me.ErrorProvider1.SetError(ctl, "Text box is empty ")
End If
End Sub