Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的验证事件没有在C#中触发?_C#_Winforms_Validating Event - Fatal编程技术网

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

为什么我的验证事件没有在C#中触发?,c#,winforms,validating-event,C#,Winforms,Validating Event,我有一个动态创建的表单。这是一个winForms应用程序 这个表单只是一个菜单和一系列文本框和标签。在本例中,您可以忽略标签 我的问题是:当我编辑文本框中的内容,然后单击菜单发出“保存”时,最后一个文本框中的文本仍然没有发出“验证”方法。这似乎是因为控件仍然具有焦点,并且菜单位于单独的线程中 当用户单击“保存”时,如何强制激发验证事件?我不知道用户在哪个文本框中(如果有),并发出SomeKnownControl.Focus()似乎没有帮助。我以前就有过这种情况。以您的形式: private vo

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

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

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


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

我以前就有过这种情况。以您的形式:

private void SaveButtonClick(...)
{
    if (this.ValidateChildren())
    {
        // do save
    }
}

没问题。。。这也让我困惑了一段时间。嗯。。。我认为问题在于,它在所有子控件上触发验证事件,而不仅仅是有焦点的子控件。