加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用ErrorProvider和验证事件进行表单验证

发布时间:2020-12-15 17:25:17 所属栏目:百科 来源:网络整理
导读:我很擅长使用验证.我有一个C#winform项目,我希望在关闭前验证表单.但是,我只想在单击按钮时进行此验证.所以我有一个像这样的事件: if (!this.ValidateChildren()){ MessageBox.Show("Validation failed");}else{ MessageBox.Show("Validation passed with f
我很擅长使用验证.我有一个C#winform项目,我希望在关闭前验证表单.但是,我只想在单击按钮时进行此验证.所以我有一个像这样的事件:

if (!this.ValidateChildren())
{
   MessageBox.Show("Validation failed");
}
else
{
   MessageBox.Show("Validation passed with flying colours. :)");
   this.Close();
}

如果验证成功,我只想关闭表单.很容易.但是,我不希望在文本框失去焦点时运行验证,只有在验证整个表单时才会运行.

我想要验证的每个控件,我已经注册了“验证”事件.他们使用“e.Cancel = true;”取消验证.我一直在使用ErrorProvider类来直观地支持它.

所以基本的问题是,只有当我想要而不是从控件中丢失焦点时才能验证特定控件集的最佳方法是什么?

编辑:目前作为一种解决方法,我有一个方法可以打开和关闭“CausesValidation”属性.我默认所有内容都不是CauseValidation,在我使用事件验证整个表单之前启用它们,然后再次禁用它们.

我真的不认为这是一种理想的方法.还有更优雅的解决方案吗?

解决方法

我认为这是使用 Error Provider Component进行验证的最佳方式

(或)试试这个

http://www.c-sharpcorner.com/uploadfile/john_charles/validating-data-entry-in-windows-forms-application/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读