VB6对用户控件的引用

VB6对用户控件的引用,vb6,oop,Vb6,Oop,在类的顶部有一个usercontrolprivate类型的变量 根据某些条件,将显示两个UserControl中的一个。问题是我想将UserControl类型的全局私有变量设置为visible UserControl,以便在其上有一个引用供以后使用。我总是得到错误类型不匹配 Private mo_SelectedControl As UserControl '... '...Some where in a Sub: set SelectedControl = myUserControl 我尝试

在类的顶部有一个usercontrolprivate类型的变量

根据某些条件,将显示两个UserControl中的一个。问题是我想将UserControl类型的全局私有变量设置为visible UserControl,以便在其上有一个引用供以后使用。我总是得到错误类型不匹配

Private mo_SelectedControl As UserControl
'...
'...Some where in a Sub:
set SelectedControl = myUserControl

我尝试过myUserControl.object,但它也不起作用。有什么想法吗?

试着将变量声明为类型
Control
,而不是
UserControl

仅仅因为您的信息用户控件非常混乱。UserControl是VB代码(从控件内部)用于与放置它的站点交互的界面

通过UserControl关键字执行对UserControl接口的访问。此接口不是由最终实现继承的,因此控件的实际公开公共接口完全由您选择公开的内容组成

当控件的实例添加到窗体中时,VB创建的实际对象是用于定位控件(例如,带有左属性和顶部属性的对象)和用户控件的公共部分的对象的COM聚合。不幸的是,实际上聚合的接口不是
UserControl
,尽管它共享多个共同的成员


因此,您不能将“UserControl”的实例分配给
UserControl
类型的变量。我想某处有人把球掉到了那个上面。

在这种情况下,你最好使用object