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