有这么一段程序一直不懂请教高人
在class modules里定义了 classa.cls,并在其中定义了一成员函数public function classa_a(参数1,参数2 ,...)
在form1窗体中 声明 implements classa 并重写private function classa_a( 参数1,参数2 ,... )
在form2 窗体中
Dim frm As classa
Set IM = form1
frm.classa 参数1,参数2 ,...既然用set IM=form1,为什么不能通过IM引用form1上的控件呢?
这里frm究竟是窗体还是类,frm是不是form1的一个实例呢?
在class modules里定义了 classa.cls,并在其中定义了一成员函数public function classa_a(参数1,参数2 ,...)
在form1窗体中 声明 implements classa 并重写private function classa_a( 参数1,参数2 ,... )
在form2 窗体中
Dim frm As classa
Set IM = form1
frm.classa 参数1,参数2 ,...既然用set IM=form1,为什么不能通过IM引用form1上的控件呢?
这里frm究竟是窗体还是类,frm是不是form1的一个实例呢?
Set frm = New Form1frm.show
frm.text1.text="232dqweqwe"
实在不好意思太马虎了,谢谢关注,如果答案满意的话我会给分的,虽说少了点,但我自己也不太宽裕frm并没有加载
如果
Dim frm As Form
那么就不能引用
classa中的成员函数a了
变量 frm 显式声明为 classa 就只能访问属于接口声明的属性/方法。窗体属于特殊的类,所以 frm 即是窗体也是类。是 Form1 的实例。
set frm = form1
这样是不对的,classa 和 form 不是一个类的。
frm声明为form1不能对classa的成员函数引用呢,我在form1中也声明了classa,重载了a函数了
ly012659 as 楼主
那么就限定了
ly012659.提问
虽然可能在其它讨论中有
ly012659.解答
在form2 窗体中
Dim frm As classa
Set IM = form1
frm.classa 参数1,参数2 ,... 这里怎么出来了IM?应该是frm吧?
Private Sub Command1_Click()
Dim frm As Form1
Set IM = New Form1
IM.a 'classa中的方法
Set frm = IM
frm.Show
frm.Caption = Now
End Sub
虽然两者的实例是相同的,但接口类型不一样//这里frm究竟是窗体还是类,frm是不是form1的一个实例呢?
我上面的代码中,frm是实现了classa接口的form1示例,但使用的时候要做类型的转换。