我只是将验证添加到新的 winform 中。我将验证和验证事件与错误提供程序控件结合使用。请看下面的代码。
第一次验证没有问题(即,如果用户输入超过 12 个字符)。在验证事件中设置错误,并且错误一直存在,直到用户输入 12 个或更少的字符。然后输入经过验证的事件并将错误重置为空字符串。
但是,在同一文本框中进行第二次验证存在问题。代码检查文本框中的零长度.. 并设置提供程序错误。在调试器中观察,确实调用了这段代码,并且设置了错误。然后发生了一些奇怪的事情,经过验证的事件(意外地)被触发,并且那里的代码立即重置了错误。
当已经设置了错误时,为什么会触发验证事件?这似乎是一个 .NET 错误。谁能提出另一种方法,或者说我做错了什么?
谢谢,
巴扎
Private Sub SampleCodeTextBox_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles SampleCodeTextBox.Validating
If SampleCodeTextBox.Text.Length > 12 Then
e.Cancel = True
FormErrorProvider.SetError(SampleCodeTextBox, "Max of 12 characters for sample code")
End If
If SampleCodeTextBox.Text.Trim.Length = 0 Then
FormErrorProvider.SetError(SampleCodeTextBox, "Must enter a sample code")
End If
End Sub
Private Sub SampleCodeTextBox_Validated(sender As Object, e As System.EventArgs) Handles SampleCodeTextBox.Validated
FormErrorProvider.SetError(SampleCodeTextBox, "")
End Sub