1

我正在编写一个新的基于插件的应用程序。这会在它们自己的应用程序域中加载程序集,并通过 Application.Run(pluginForm) 在每个程序域中显示指定的主表单。在应用程序域中调用 Application.Run(pluginForm) 之前,我将加载器应用程序中的主窗体设置为每个 pluginForm 的父窗体。因此,当 pluginForm 显示时,它总是显示在加载器应用程序的 mainForm 前面。

我的问题是,当用户第一次点击 pluginForm(子表单)时,它失去了焦点,而 mainForm(加载器应用程序的表单)获得了焦点。(但是 pluginForm 保持在前面)因此用户最终必须单击两次才能使 pluginForm 第一次聚焦。

这很烦人。我怎样才能解决这个问题?

4

2 回答 2

2

您应该通过调用将子窗体显示为父 UI 线程上的模式对话框ShowDialog()

于 2010-09-21T20:18:37.673 回答
-1

当您调用子表单时,请使用

childForm.ShowDialog(parentForm);

或等价物

childForm.ShowDialog(this);
于 2010-09-22T05:39:34.117 回答