Vb.net OCX控件:Sub New()在此上下文中不可访问,因为它是';私人';

Vb.net OCX控件:Sub New()在此上下文中不可访问,因为它是';私人';,vb.net,vb6,activex,com-interop,vb6-migration,Vb.net,Vb6,Activex,Com Interop,Vb6 Migration,最近我一直在尝试创建一个activeX控件,并在一些vb.net代码中使用它。经过多次努力,我在vb6中创建了我的控件并生成了ocx文件。我一直在尝试使用它,如微软文档所示,但没有用。 关于: 我一直在 在中无法访问MyActiveXComponent.MyClass.Private Sub New() 这是因为它是“私有的” 我可以将它导入工具箱并以这种方式使用,但我不想这样做,我使用的是VisualStudio2005。另外,我有一个ocx,我可以用两种方法(不是我的),所以我怀疑我的ocx

最近我一直在尝试创建一个activeX控件,并在一些vb.net代码中使用它。经过多次努力,我在vb6中创建了我的控件并生成了ocx文件。我一直在尝试使用它,如微软文档所示,但没有用。 关于:

我一直在

在中无法访问MyActiveXComponent.MyClass.Private Sub New() 这是因为它是“私有的”


我可以将它导入工具箱并以这种方式使用,但我不想这样做,我使用的是VisualStudio2005。另外,我有一个ocx,我可以用两种方法(不是我的),所以我怀疑我的ocx有问题,但我不知道是什么原因。

你把类和控件混合了一点。但是在任何情况下,如果您希望您的类可以公开创建,您需要设置实例,我建议使用MultiUse


如果类名为
MyClass
,则看起来您正在创建一个实例。这是您在ocx中定义的一个类吗?@tcarvin Yes尝试实例化一个用户控件。在本例中,ocx中包含的MyClass可以在此处找到源代码。您的
子控件是新的
私有的吗?也许它需要是
Public
?@ChrisDunaway我根本无法在vb6中编写sub new,据我所知new应该在interop生成的包装中,它正在查看对象浏览器,但它来自System.object,在另一个工作ocx中它是类的成员,几乎和类模块一样。默认情况下,OCX项目中的类是可创建的。
myActiveX = New MyActiveXComponent.MyClass()