如何在VB6中使用C#创建的控件作为窗体

3
我有一个在C#解决方案中创建的用户控件,我必须在现有的VB表单中使用该控件。 我对VB不熟悉,请帮我解决这个问题。
提前致谢。

1
请查看此链接:https://dev59.com/y3RC5IYBdhLWcg3wOOL1 - Nadeem_MK
你确定要在VB中使用.NET DLL吗?如果没有安装.NET,那是行不通的。 - Sriram Sakthivel
Dotnet 已经安装。我正在尝试使用以下方法。Set mctldemo = Controls.Add("Democtl.Control", "ctlDemo", Me) - satyanarayana
2
我为你仍然需要使用VB6感到遗憾。 - Jason Evans
一个相关的答案:http://stackoverflow.com/a/19092026/1768303 - noseratio - open to work
2个回答

2

在加载数据时,我已经将控件设置为这样:

   Set mctldemo = Controls.Add("Democtl.Control", "ctlDemo", Me)

但是忘记提到了ClassInterface,如此链接所示:link

[ClassInterface(ClassInterfaceType.AutoDual)]
    [ProgId("Democtl.Control")] 

感谢大家回答我的问题,也感谢Nadeem_MK提供的链接。

-1

看起来这不受支持。我从未尝试过,为什么要尝试呢,但其他人已经尝试过:

然而根据支持文档,通过在VB6控件中托管dotNet用户控件于WebBrowser实例内,或许勉强可以使其工作。

但我真的建议你不要这样做。我不禁想到,将整个表单升级到dotNet可能会更容易...甚至将整个项目升级到VB.Net...

或者,您可以将用户控件重写为VB6用户控件。


1
你的三个链接不是针对不同的问题吗?(i)在Office文档中显示一个.Net控件(ii)从VB6显示.Net表单(iii)从Internet Explorer显示.Net控件。问题是关于在VB6窗体中显示一个.Net控件(而不是表单)。顺便说一下,升级VB6->VB.Net可能是一项巨大的工程。 - MarkJ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接