gpt4 book ai didi

c# - 在 WinForm 中验证数据

转载 作者:太空狗 更新时间:2023-10-30 00:34:38 24 4
gpt4 key购买 nike

我在我的 WinForms 应用程序中创建了一个对话框。这有许多文本框和确定/取消按钮。当用户单击“确定”时,我只想在所有条目都有效时关闭对话框。我可以看到如何分别使用每个控件的“验证”事件来执行此操作。那也行。但是这些似乎只有在控件失去焦点时才会触发。但是,我的对话框中的空文本框也是无效输入,这意味着用户可能永远不会关注该控件。我更愿意在单击“确定”时验证所有控件。

不过我不知道该怎么做。覆盖 OK 按钮的 onclick 似乎没有阻止窗口关闭的选项。 Form IsClosing 事件通过设置 Cancel = true 来完成。但这似乎无法区分点击的是确定按钮还是取消按钮。显然,如果单击取消按钮,我不关心验证,并且无论如何都希望允许表单关闭。

执行此操作的最佳方法是什么?]

更新:我已经在我的表单和 ok 按钮上将 CausesValidation 设置为 true,但是当我单击 ok 按钮时我的验证事件没有被触发。我提到这个是因为它被建议作为下面的解决方案。

最佳答案

请选择表单 > 将属性 CausesValidation 设置为 true

选择“确定”按钮并再次将属性 CausesValidation 设置为 true

然后它将负责所有验证。

要点:1) 您必须在所有验证事件处理程序中提及 e.Cancel=true

2) 如果您的按钮在面板中,那么您必须将面板(或任何父控件的)CausesValidation 属性设置为 true

编辑:

3) 在失去焦点之前验证点火。在按下 Enter 的同时导致默认按钮点击,它不会将焦点移动到那个按钮,因此如果您将表单的 AcceptButton 属性设置为确定按钮,则不会触发任何验证事件

关于c# - 在 WinForm 中验证数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7109350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com