我需要将 .NET 4 Winform 应用程序指定为 Delphi 7 表单的所有者。
我在 Delphi 中创建了一个包含表单的 .dll。 Delphi .dll 导出方法来创建和显示表单。
我已经在我的 .NET 应用程序中成功加载了 Delphi .dll,并显示了表单。
现在我需要能够将 .NET 应用程序(或 .NET 应用程序的主窗体)指定为 Delphi 窗体的所有者。
我之前创建了一个通过 COM 与 .NET 互操作的 Delphi 应用程序,并使用以下类将 Delphi 应用程序指定为 .NET 表单的所有者:
public class WindowHandleWrapper : IWin32Window
{
public HandleRef m_Handle;
public IntPtr Handle
{
get
{
return m_Handle.Handle;
}
}
public WindowHandleWrapper(IntPtr handle)
{
m_Handle = new HandleRef(this, handle);
}
}
Delphi 应用程序句柄作为整数传递给 WindowHandleWrapper
构造函数。
我怀疑解决方案会是类似的,例如将句柄作为整数传递给 Delphi。但是,窗体的 Owner 属性的 Delphi 类型是 TComponent。我只是不确定如何将 .NET 句柄分配为 Delphi 窗体的所有者。
有什么想法吗?
最佳答案
将您的 WinForm 句柄作为参数传递给 DLL,并在以模式方式创建和显示表单之前将其分配给 Application.Handle
。
关于c# - 如何将 .NET 4 WinForm 应用程序分配给 Delphi 7 窗体的所有者属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249468/