【发布时间】:2012-06-21 02:59:16
【问题描述】:
我只是在新的 winform 中添加验证。我将 validating 和 validated 事件与 error provider 控件结合使用。请看下面的代码。
第一次验证没有问题(即如果用户输入超过 12 个字符)。在验证事件中设置错误,并且错误一直存在,直到用户输入 12 个或更少的字符。然后输入 Validated 事件并将错误重置为空字符串。
但是,在同一文本框中进行第二次验证时存在问题。代码检查文本框中的零长度.. 并设置提供程序错误。在调试器中观察,确实调用了这段代码,并且设置了错误。然后发生了一些奇怪的事情,validated 事件被(意外地) 触发,并且那里的代码立即重置了错误。
当已经设置了错误时,为什么会触发 validated 事件?这似乎是一个 .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
【问题讨论】:
标签: .net vb.net winforms validation