2011-05-25 65 views
2

我有一个Windows窗体,其上有TextBox控件和一个Button。每个TextBoxValidating事件确保只有格式正确的输入才能被提交(duh)。该Button明确按钮复位形式,清除文本框值等。如果我写了一些非法的TextBox然后按明确按钮,当然火灾的验证,我得到一个MessageBox说服力我这个。所以我不能使用清除按钮,除非我手动清除无效TextBox按下特定按钮时忽略文本框的验证

我意识到,之所以Validating事件触发的是,TextBox失去焦点,当我按下明确按钮,但有没有办法忽略在这种情况下验证?

我试图设置Form.AutoValidate禁用,但我从来没有得到任何验证,这不完全是我想要的。

回答

1

您应该已经足够将清除按钮的CausesValidation属性设置为false。如果您选择了文本框并按下按钮,则不会触发验证。

从MSDN条目CausesValidation

获取或设置指示是否要对要求验证当它接收到焦点的任何控件执行的控制导致验证的值。

+0

+1:这比我的回答好得多。谢谢! – 2011-05-26 06:20:51

+0

出于某种原因,似乎不适用于我的情况。无论如何都会进行验证。也许它是有区别的,按钮是在它自己的面板上,而验证文本框是在另一个面板中的一个标签页内的一个标签控件内,它自己的面板上与该面板相同的窗体中。实验。 – pinkfloydhomer 2011-05-27 10:56:02

+0

是的,你可能是对的。从我的头顶来看,我无法真正告诉你哪种情况可以发挥作用。当我有一些空闲时间时,我会尝试创建一个具有该场景的表单,看看会发生什么。 – 2011-05-27 11:02:22