如何使用 ShowDialog 方法显示 Windows 窗体以支持 COM 互操作

可通过在 .NET Framework 消息循环上显示 Windows 窗体来解决组件对象模型 (COM) 互操作性问题,可使用 Application.Run 方法来创建该消息循环。

若要使表单在 COM 客户端应用程序中正常工作,必须在 Windows 窗体消息循环上运行它。 为此,请使用以下方法之一:

程序

使用 Form.ShowDialog 方法可能是在 .NET Framework 消息循环上显示窗体的最简单方法,因为所有方法都需要实现最少的代码。

Form.ShowDialog 方法挂起非托管应用程序的消息循环,并将窗体显示为对话框。 由于宿主应用程序的消息循环已挂起,Form.ShowDialog 方法创建新的 .NET Framework 消息循环来处理该窗体的消息。

使用 Form.ShowDialog 方法的缺点在于,窗体将会以模态对话框的形式打开。 Windows 窗体打开时,此行为将阻止调用应用程序中的任何用户界面 (UI)。 当用户退出表单时,.NET Framework 消息循环将关闭,而早期应用程序的消息循环将再次开始运行。

在 Windows 窗体中,您可以创建一个类库,该类库中包含一个用于显示窗体的方法,然后构建该类库以支持 COM 互操作性。 可以从 Visual Basic 6.0 或 Microsoft 基础类(MFC)使用此 DLL 文件,并从其中任一环境调用 Form.ShowDialog 方法来显示窗体。

通过使用 ShowDialog 方法显示 Windows 窗体来支持 COM 互操作

另请参阅