vb6.0用户控件嵌套子控件怎样调用父控件的方法

时间:2022-09-08 12:07:58
请教高手:
我做了一个小程序,其中用到两个用户控件,us1和us2。us1上有一个按钮;us2上有一个文本框。然后把us1放到us2上,
在us1和us2中分别写了如下代码:
us1中:
Private Sub Command1_Click()
Call Us21.创建timer1
End Sub

us2中:
Dim WithEvents timer1 As Timer
Public Sub 创建timer1()
Set timer1 = Controls.Add("vb.timer", "timer1")
    timer1.Interval = 100
    timer1.Enabled = True
End Sub
Private Sub timer1_timer()
Static t%
t = t + 1
Text1 = t
End Sub
请教问题:以上代码在测试时,提示“Call Us21.创建timer1" 这一句未定义,于是我把此句改为”Call Form1.Us21.创建timer1“
这样就顺利通过。但是这样一来,输出ocx时就报错,因为输出ocx时把form1(form1.frm)移除了。生成ocx后,也许会用到form2.....form9窗体上呢,不移除测试窗体又不行。这可怎么办呀?!请天下高手不吝赐教!

3 个解决方案

#1


'us1
Option Explicit

Public Event CommandClick()

Private Sub Command1_Click()
    RaiseEvent CommandClick
End Sub

'Form1
Option Explicit

Private Sub us11_CommandClick()
    Call us21.创建timer1
End Sub

#2


感谢指教!但是老师:
我的程序是将us1嵌套到us2中,然后再把us2放进form1中测试,而不是把us1和us2同时放进form1。因此才产生了前述的问题。
请再帮助一下!!!

#3


us2响应us1的 CommandClick() 事件调用自己的 创建timer1() 不是更容易了。

#1


'us1
Option Explicit

Public Event CommandClick()

Private Sub Command1_Click()
    RaiseEvent CommandClick
End Sub

'Form1
Option Explicit

Private Sub us11_CommandClick()
    Call us21.创建timer1
End Sub

#2


感谢指教!但是老师:
我的程序是将us1嵌套到us2中,然后再把us2放进form1中测试,而不是把us1和us2同时放进form1。因此才产生了前述的问题。
请再帮助一下!!!

#3


us2响应us1的 CommandClick() 事件调用自己的 创建timer1() 不是更容易了。