Pat*_*ins 1 oop vb6 user-controls
由于未知原因,VB6与UserControl的交互方式与其他对象不同.
我有一个类需要保存图形界面,用户控件,需要设置以便以后从get方法使用.我尝试了很多东西,比如使用特殊类VBControlExtender但没有任何成功.
这是我到目前为止:
'...
Private WithEvents m_uGUI As VBControlExtender
Public Property Get GUI() As VBControlExtender
Set GUI = m_uGUI
End Property
Public Property Set GUI(ByVal uValue As VBControlExtender)
Set m_uGUI = uValue
End Property
'...
Run Code Online (Sandbox Code Playgroud)
Set myObject.GUI = new ucMyUserControl
Run Code Online (Sandbox Code Playgroud)
任何的想法?
从这个错误的帮助(它提到ListBox和Form,但同样适用于UserControls):
New关键字只能应用于可创建对象...您尝试实例化Automation对象,但它不是可创建对象.例如,您尝试通过在如下语句中指定ListBox来创建列表框的新实例:[示例代码已剪切] ListBox和Form是类名,而不是特定的对象名.您可以使用它们来指定变量将是对某个对象类型的引用...但是您不能使用它们在Set语句中实例化对象本身.您必须在Set语句中指定特定对象,而不是通用类名:
你想要做的是创建一个UserControl数组并根据需要加载新的UserControl.将UserControl的Index属性设置为0以使其成为一个数组,然后使用Load语句创建新实例:
Load ucMyUserControl(1)
Set myObject.GUI = ucMyUserControl(1)
Run Code Online (Sandbox Code Playgroud)
当您需要更多时,只需指定一个新的上限:
Load ucMyUserControl(2)
Load ucMyUserControl(3)
...
Run Code Online (Sandbox Code Playgroud)
当你完成它们后,卸载它们:
Unload ucMyUserControl(3)
Unload ucMyUserControl(2)
...
Run Code Online (Sandbox Code Playgroud)