我有一个动态创建的表单,它是一个WinForms应用程序。
这个表单只包含一个菜单以及一系列文本框和标签。为了这个例子,您可以忽略标签。
我的问题是:当我在文本框中编辑内容,然后点击菜单发出“保存”命令时,最后一个文本框中的文本仍未发出其“验证”方法。这似乎是因为控件仍然拥有焦点,并且菜单在另一个线程中。
如何在用户点击“保存”时强制触发验证事件?我不知道用户正在使用哪个文本框(如果有),而在“保存”函数中发出 SomeKnownControl.Focus();
似乎没有帮助。
我有一个动态创建的表单,它是一个WinForms应用程序。
这个表单只包含一个菜单以及一系列文本框和标签。为了这个例子,您可以忽略标签。
我的问题是:当我在文本框中编辑内容,然后点击菜单发出“保存”命令时,最后一个文本框中的文本仍未发出其“验证”方法。这似乎是因为控件仍然拥有焦点,并且菜单在另一个线程中。
如何在用户点击“保存”时强制触发验证事件?我不知道用户正在使用哪个文本框(如果有),而在“保存”函数中发出 SomeKnownControl.Focus();
似乎没有帮助。
我以前也遇到过这个问题。在你的表单中:
private void SaveButtonClick(...)
{
if (this.ValidateChildren())
{
// do save
}
}