【发布时间】:2011-10-29 21:01:33
【问题描述】:
我在我的 WinForms 应用程序中创建了一个对话框。这有许多文本框和确定/取消按钮。当用户单击确定时,我只希望在所有条目都有效时关闭对话框。我可以看到如何分别使用每个控件的“验证”事件来做到这一点。没事儿。但这些似乎只有在控件失去焦点时才会触发。但是,我的对话框中的空文本框也是无效输入,这意味着用户可能从未关注过该控件。我宁愿在点击 OK 时验证所有控件。
但我不知道该怎么做。覆盖 OK 按钮的 onclick 似乎没有停止窗口关闭的选项。 Form IsClosing 事件通过设置 Cancel = true 来实现。但这似乎无法区分是单击确定还是取消按钮。显然,如果单击取消按钮,我不关心验证,并且无论如何都希望允许表单关闭。
这样做的最佳方法是什么?]
更新: 我已经在我的表单和确定按钮上将 CausesValidation 设置为 true,但是当我单击确定按钮时,我的验证事件不会被触发。我提到了这一点,因为它被建议作为下面的解决方案。
【问题讨论】:
-
为什么你不能调用你的验证(我建议你看看数据绑定并顺便验证你的绑定对象)方法 onclick 为 ok 按钮然后不关闭验证失败?单击确定时,您的表单不应神奇地关闭。