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

时间:2009-02-17 20:39:44

标签: c# winforms validating-event

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

此表单只是一个菜单和一系列文本框和标签。为了这个例子,你可以忽略标签。

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

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

1 个答案:

答案 0 :(得分:31)

我之前有过这个。在您的表格中:

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

ValidateChildren on MSDN