我的表单中有两个文本框txtLastName
和txtFirstName
以及一个ErrorProvider
控件。如果用户未在两个文本框中输入值,则事件后将显示错误图标。当用户在txtLastName中放入一个值并且没有在txtFirstName中放置任何值时,那就没关系。但是,错误图标仍在显示。
Public Sub New()
InitializeComponent()
AddTags()
AddHandler txtLastName.Validating, AddressOf RequiredUnless
AddHandler txtFirstName.Validating, AddressOf RequiredUnless
End Sub
Sub AddTags()
txtLastName.Tag = txtFirstName
txtFirstName.Tag = txtLastName
End Sub
Public Sub RequiredUnless(sender As Object, e As EventArgs)
Dim ctrl As BaseEdit = TryCast(sender, BaseEdit)
Dim ctrl2 As BaseEdit = ctrl.Tag
Dim ErrProvider As New ErrorProvider
If ctrl.Text = "" And ctrl2.Text = "" Then
ErrProvider.SetError(ctrl, "This field cannot be empty")
Else
ErrProvider.SetError(ctrl, "")
End If
End Sub
答案 0 :(得分:1)
您不应该在该代码中创建ErrorProvider
。你没有保留任何参考,所以你怎么能清除它?下次引发事件时,您将创建一个新事件并“清除”该事件,但这对前一个事件没有任何作用。您应该在设计器中添加一个ErrorProvider
并始终引用该设置。