跳过控制旁路验证.NET

时间:2010-02-25 20:04:08

标签: .net winforms tabbing validating-event

所以,我有一个User Control,它只是一个带有特殊格式规则的TextBox(有理由说我不只是使用MaskedTextBox ......你知道......明智的解决方案)。

无论如何,当用户输入无效数据时,他们无法使用鼠标单击,因为TextBox_Validating事件会像它应该的那样取消,并且控件在输入可接受的输入之前不能失去焦点。但是,如果他们试图关闭控件,那么'e.Cancel = True'语句正在被命中(我通过使用断点知道这一点)但是WinForms仍然允许它们切换到其他控件,留下无效数据文本框。

我缺少什么才能使标签行为恰当?

1 个答案:

答案 0 :(得分:0)

从.Net Framework 2.0版开始,您可以使用Form.AutoValidate属性来修改验证行为。有关详细信息,请参阅documentation

我刚刚测试了tabbing问题,并且当验证失败时(e.Cancel = true),它不会让我离开。当验证成功(e.Cancel = false)时,每个人都可以。