ErrorProvider不清除

时间:2018-03-09 04:02:07

标签: vb.net

我的表单中有两个文本框txtLastNametxtFirstName以及一个ErrorProvider控件。如果用户未在两个文本框中输入值,则事件后将显示错误图标。当用户在txtLastName中放入一个值并且没有在txtFirstName中放置任何值时,那就没关系。但是,错误图标仍在显示。

enter image description here

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

1 个答案:

答案 0 :(得分:1)

您不应该在该代码中创建ErrorProvider。你没有保留任何参考,所以你怎么能清除它?下次引发事件时,您将创建一个新事件并“清除”该事件,但这对前一个事件没有任何作用。您应该在设计器中添加一个ErrorProvider并始终引用该设置。

相关问题