2011-02-10 75 views
2

我將一箇舊的VB6應用程序移植到.Net中,但在此版本中,一個Vb6表單太大而無法遷移。在.Net MDI中包含VB6表單

I Shell Vb6 exe從.Net顯示VB6表單,但VB6表單不包含在.Net MDI中。我有一個直覺,它不可能嵌入在.NET MDI VB6的形式,有誰知道這是可能的嗎?

我像Interop Forms Toolkit 2.1甚至是API

回答

3

這確實是可能的。這只是既不簡單,也不是特別的好主意......

你需要創建一個表單,然後你就可以嵌入VB 6的形式爲ActiveX容器。有關詳細信息,請參閱CodeProject上的此文章:Embedding of VB6 form in .NET applications

另一種可能的(並且更簡單的方法)可能是將VB 6窗體的父級設置爲.NET MDI容器。我不確定這是否會奏效(我從來沒有嘗試過),但它值得一試。您需要P/Invoke FindWindow function以獲取VB 6表單窗口的句柄以及SetParent function以更改其父窗口。

+0

我同意科迪說它不是一個好主意。我將繼續對VB6 exe進行炮擊 - 因此業務知道我們還有更多工作要做! – 2011-02-10 21:47:50