我在 WinForms 应用程序中创建了一个对话框。它有许多文本框和确定/取消按钮。当用户单击“确定”时,我只希望在所有条目均有效的情况下关闭对话框。我可以看到如何分别使用每个控件的“验证”事件来执行此操作。没事儿。但这些似乎只有在控件失去焦点时才会触发。但是,对话框中的空文本框也是无效输入,这意味着用户可能永远不会关注该控件。我宁愿在单击“确定”时验证所有控件。
但我不知道如何做到这一点。覆盖“确定”按钮的 onclick 似乎没有阻止窗口关闭的选项。 Form IsClosing 事件通过设置 Cancel = true 来执行。但这似乎无法区分单击的是“确定”按钮还是“取消”按钮。显然,如果单击取消按钮,我不关心验证,并且希望允许表单关闭。
执行此操作的最佳方法是什么?]
更新:
我已经在表单和“确定”按钮上将 CausesValidation 设置为 true,但是当我单击“确定”按钮时,我的验证事件不会被触发。我提到这一点是因为下面建议将其作为解决方案。
请选择表格 > 设置属性CausesValidation
to true
选择“确定”按钮并再次设置属性CausesValidation
to true
然后它将处理所有验证。
要点:
1)你必须提到e.Cancel=true
在所有验证事件处理程序中
2)如果您的按钮位于面板中,那么您必须设置面板(或任何父控件)CausesValidation
财产给true
Edit:
3) 在失去焦点之前验证火灾。按 Enter 键时将
导致默认按钮单击,它不会将焦点移动到该按钮
按钮,因此如果您将表单 AcceptButton 属性设置为“确定”按钮,则不会触发任何验证事件
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)