所以,我有一个User Control,它只是一个带有特殊格式规则的TextBox(有理由说我不只是使用MaskedTextBox ......你知道......明智的解决方案)。
无论如何,当用户输入无效数据时,他们无法使用鼠标单击,因为TextBox_Validating事件会像它应该的那样取消,并且控件在输入可接受的输入之前不能失去焦点。但是,如果他们试图关闭控件,那么'e.Cancel = True'语句正在被命中(我通过使用断点知道这一点)但是WinForms仍然允许它们切换到其他控件,留下无效数据文本框。
我缺少什么才能使标签行为恰当?
答案 0 :(得分:0)
从.Net Framework 2.0版开始,您可以使用Form.AutoValidate
属性来修改验证行为。有关详细信息,请参阅documentation。
我刚刚测试了tabbing问题,并且当验证失败时(e.Cancel = true),它不会让我离开。当验证成功(e.Cancel = false)时,每个人都可以。