如何在VB6中创建UserControl的Setter/Getter?

如何在VB6中创建UserControl的Setter/Getter?,vb6,user-controls,oop,Vb6,User Controls,Oop,由于未知原因,VB6与UserControl的交互方式与其他对象不同 我有一个类,需要保存一个图形界面、一个用户控件,并且需要设置为以后从get方法使用。我尝试过很多事情,比如使用特殊类VBControlExtender,但没有成功 以下是我到目前为止的情况: 类,该类保存变量和用户控件: 无法编译的类的调用: 有什么想法吗?我相信VBControlExtender(即Controls.Add)不是内在的控件。为什么不能使用ucMyUserControl作为类型?我认为VBControlExte

由于未知原因,VB6与UserControl的交互方式与其他对象不同

我有一个类,需要保存一个图形界面、一个用户控件,并且需要设置为以后从get方法使用。我尝试过很多事情,比如使用特殊类VBControlExtender,但没有成功

以下是我到目前为止的情况:

类,该类保存变量和用户控件: 无法编译的类的调用:
有什么想法吗?

我相信VBControlExtender(即Controls.Add)不是内在的控件。为什么不能使用
ucMyUserControl
作为类型?

我认为VBControlExtender(即Controls.Add)不是内部控件。为什么不能改用
ucMyUserControl
作为类型?

来自此错误的帮助(它提到了列表框和表单,但同样适用于UserControls):

新关键字只能应用于 一个可创建的对象。。。你试着 实例化一个自动化对象,但是 它不是一个可创建的对象。对于 例如,您尝试创建一个新的 通过指定 语句中的列表框,如 下面:[示例代码被剪掉] ListBox和Form是类名,而不是 特定对象名称。你可以用 它们可以指定变量将 是对某个对象的引用 键入。。。但你不能用它们来 在中实例化对象本身 固定语句。您必须指定一个 特定对象,而不是 集合中的泛型类名 声明:

您要做的是创建一个UserControls数组,并根据需要加载新的UserControls。将UserControl的Index属性设置为0以使其成为数组,然后使用Load语句创建新实例:

Load ucMyUserControl(1) 
Set myObject.GUI = ucMyUserControl(1)
当需要更多时,只需指定一个新的上限:

Load ucMyUserControl(2) 
Load ucMyUserControl(3)
...  
完成后,卸载它们:

Unload ucMyUserControl(3)
Unload ucMyUserControl(2)
...

在关于此错误的帮助中(它提到ListBox和Form,但同样适用于UserControls):

新关键字只能应用于 一个可创建的对象。。。你试着 实例化一个自动化对象,但是 它不是一个可创建的对象。对于 例如,您尝试创建一个新的 通过指定 语句中的列表框,如 下面:[示例代码被剪掉] ListBox和Form是类名,而不是 特定对象名称。你可以用 它们可以指定变量将 是对某个对象的引用 键入。。。但你不能用它们来 在中实例化对象本身 固定语句。您必须指定一个 特定对象,而不是 集合中的泛型类名 声明:

您要做的是创建一个UserControls数组,并根据需要加载新的UserControls。将UserControl的Index属性设置为0以使其成为数组,然后使用Load语句创建新实例:

Load ucMyUserControl(1) 
Set myObject.GUI = ucMyUserControl(1)
当需要更多时,只需指定一个新的上限:

Load ucMyUserControl(2) 
Load ucMyUserControl(3)
...  
完成后,卸载它们:

Unload ucMyUserControl(3)
Unload ucMyUserControl(2)
...

我无法使用ucMyUserControl,因为根据程序中的语句,用户控件将设置为ucMyUserControl1,有时设置为ucMyUserControl2。如果我将VBControlExtender更改为UserControl,我仍然会出现相同的错误“新关键字的使用无效”,我无法使用ucMyUserControl,因为根据程序中的语句,用户控件将设置为ucMyUserControl1,有时设置为ucMyUserControl2。如果我将VBControlExtender更改为UserControl,我仍然会出现相同的错误“无效使用新关键字”。如果我将VBControlExtender更改为UserControl,我仍然会出现相同的错误“无效使用新关键字”。两者都不起作用。如果我将VBControlExtender更改为UserControl,我仍然会出现相同的错误“无效使用新关键字”。两者都不起作用。啊,这是一个带有控件类型的新语句,当然是。在VB6中不能这样做。回答得不错。我不知道如何在类中创建UserControl数组,并在需要时将其加载到表单中。我理解你的观点,如果我必须直接在表单中加载它们,但我必须在类中保留usercontrol,直到触发所需的时刻。+1。啊,这是一个带有控件类型的新语句,当然是。在VB6中不能这样做。回答得不错。我不知道如何在类中创建UserControl数组,并在需要时将其加载到表单中。我理解你的观点,如果我必须直接在表单中加载它们,但我必须在类中保留usercontrol,直到触发渴望的时刻。