为啥我的验证事件没有在 C# 中触发?

Posted

技术标签:

【中文标题】为啥我的验证事件没有在 C# 中触发?【英文标题】:Why is my validating event not firing in C#?为什么我的验证事件没有在 C# 中触发? 【发布时间】:2009-02-17 20:39:43 【问题描述】:

我有一个动态创建的表单。它是一个 winForms 应用程序。

这个表单只是一个菜单和一系列文本框和标签。在本示例中,您可以忽略标签。

我的问题是:当我在文本框中编辑内容时,然后单击菜单发出“保存”,最后一个文本框中的文本仍未发出其“验证”方法。这似乎是因为控件仍然具有焦点,并且菜单位于单独的线程中。

当用户单击“保存”时,如何强制触发验证事件?我不知道用户在哪个文本框上(如果有的话),并且在“保存”功能中发出 SomeKnownControl.Focus(); 似乎没有帮助。

【问题讨论】:

【参考方案1】:

我以前吃过这个。在您的表格中:

private void SaveButtonClick(...)

    if (this.ValidateChildren())
    
        // do save
    

ValidateChildren on MSDN

【讨论】:

没问题...它也难倒了我一段时间。 嗯...我认为问题在于它会在所有子控件上触发 Validating 事件,而不仅仅是具有焦点的那个。

以上是关于为啥我的验证事件没有在 C# 中触发?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的验证器没有在 Laravel 中验证?

Semantic-UI 避免某些按钮单击事件的表单验证触发

为啥我的 Action 事件没有被触发?

为啥我的动作脚本事件没有触发?

C# 验证事件:测试空白文本框和数字验证?

为啥我的 current_user 没有在烧瓶登录中进行身份验证?