验证用户输入/为 .NET 控件提供状态 OK 或 NOK

2024-04-18

我正在考虑验证用户输入的最佳方法。

让我们想象一下一些文本框、复选框或您喜欢的任何 .NET 控件,其中必须将用户输入验证为 OK 或 NOK。一旦用户填写了所有必填字段,他就通过按钮提交。

现在我必须知道哪些字段之前被确认为 OK,哪些字段被确认为 NOK。到目前为止,我总是通过为每个控件声明一个全局 bool 变量来告诉我这一点来处理此类情况。但我不喜欢这样...

我很确定一定还有其他方法!我想做的是使用名为 status 或类似的 OK 或 NOK 属性来扩展这些 .NET 控件。你能做到吗?如果是这样,你会怎么做?类似的东西已经存在了吗?

感谢您的答复!


Windows 窗体中有一些有用的功能来执行验证并显示错误消息,包括:

  • 界面
  • 控制事件
  • 成分
  • 方法和形式的性质

使用以上选项:

  • 当您使用数据绑定到模型类时,您可以执行验证。
  • 当您不使用数据绑定时,您可以执行验证。
  • 您可以在处于无效状态的控件附近显示错误消息和错误图标。
  • 您可以决定阻止无效控件的焦点更改或让焦点更改。
  • 您可以显示表单的验证摘要。
  • 您还可以申请Windows 窗体中的数据注释验证 http://www.reza-aghaei.com/dataannotations-validation-attributes-in-windows-forms/

IDataErrorInfo接口

如果您有一些模型类,最适合验证并在 Windows 窗体中提供错误消息的方法是实现IDataErrorInfo。它由数据绑定机制和一些 Windows 窗体控件支持,例如DataGridView and ErrorProvider.

为了简单起见,您可以在类中编写验证规则并使用返回错误消息IDataErrorInfo特性。即使您想应用更高级的场景(例如使用验证引擎),最后最好还是实现IDataErrorInfo以获得与windows窗体最一致的效果。

您将使用一个ErrorProvider显示错误消息。将其绑定到您的数据源就足够了,它会自动显示错误。

验证控件事件

如果您没有模型类并且所有验证都应针对控件完成,则最好的选择是使用Validating控制事件。在那里你可以设置e.Cancel = true设置控制状态为无效。然后,您可以防止焦点更改或使用控制状态来获取验证摘要。

在这种情况下,您将使用ErrorProvider显示错误。为控件设置错误就足够了Validating事件这样:errorProvider1.SetError(control1, "Some Error")或者您可以设置一个空的错误消息来删除验证错误。

错误提供者组件
在这两种情况下,当您使用数据绑定或使用Validating事件,如上所述,ErrorProvider显示错误图标,并带有工具提示,在控件附近显示错误消息。 (DataGridView使用自己的机制来显示行和单元格上的错误,而不使用ErrorProvider.)

您还可以使用该组件来获取表单的验证摘要GetError返回每个控件的错误消息的组件的方法。

表单的 ValidateChildren 方法和 AutoValidate 属性

您可以使用ValidateChildren表单或容器控件的方法来检查控件是否存在验证错误。

基于的价值AutoValidate表单的属性,它可以防止焦点更改或让焦点从无效控件更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证用户输入/为 .NET 控件提供状态 OK 或 NOK 的相关文章

随机推荐