在 .Net MDI 中包含 VB6 表单

发布于 2024-10-16 21:17:51 字数 326 浏览 3 评论 0原文

我正在将一个旧的 VB6 应用程序移植到 .Net 中,但其中一个 Vb6 表单太大,无法在此版本中迁移。

我对 Vb6 exe 进行外壳处理以显示来自 .Net 的 VB6 表单,但 VB6 表单不包含在 .Net MDI 中。我有一种直觉,不可能将 VB6 表单嵌入到 .NET MDI 中,有人知道这是否可能吗?

我正在寻找类似 Interop Forms Toolkit 2.1 甚至 API 的东西

I'm porting an old VB6 app into .Net but one Vb6 form is too big to migrate in this release.

I Shell the Vb6 exe to show the VB6 form from .Net, but the VB6 form is not contained in the .Net MDI. I have a gut feeling its not possible to embed the VB6 form in the .NET MDI, does anyone know if this is possible?

I'm after something like Interop Forms Toolkit 2.1 or even an API

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何处潇湘 2024-10-23 21:17:51

这确实是可能的。这既不简单,也不是一个特别好的主意...

您需要为表单创建一个 ActiveX 容器,然后可以将 VB 6 表单嵌入其中。有关详细信息,请参阅 CodeProject 上的这篇文章:在 .NET 应用程序中嵌入 VB6 表单

另一种可能的(并且明显更简单的方法)可能是将 VB 6 表单的父级设置为 .NET MDI 容器。我实际上不确定这是否有效(我从未尝试过),但值得一试。您需要 P/Invoke FindWindow 函数< /a> 获取 VB 6 表单窗口的句柄,以及 < code>SetParent 函数 更改其父窗口。

It is indeed possible. It's just neither simple, nor a particularly a good idea...

You'll need to create an ActiveX container for the form, which you can then embed the VB 6 form into. See this article on CodeProject for details: Embedding of VB6 form in .NET applications

Another possible (and significantly simpler approach) might be to set the parent of your VB 6 form as the .NET MDI container. I'm not actually sure if this will work (I've never tried it), but it's worth a shot. You'll need to P/Invoke the FindWindow function to get the handle to your VB 6 form window, as well as the SetParent function to change its parent window.

開玄 2024-10-23 21:17:51

抱歉,我发布得太早了,这是解决方案:

Embedding of VB6 form in .NET applications< /a>

Sorry, I posted too soon here's the solution:

Embedding of VB6 form in .NET applications

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文