控件A调用控件B的方法,控件A里这样写 Public Function sReady() As String '返回值:1,成功;0,失败 on error goto a0 call 控件B.isready sReady = 1 exit Function a0: sReady = 0 End Function
在控件工程里新建一个窗体,命名为frmtest,里面有如下的代码: Private Sub Form_Load() call UserControl.Mysub '调用不成功 End Sub
Private Sub Form_Unload(Cancel As Integer) '把事件返回给MyEvent,怎么实现。 End Sub
请指点,最好能附代码,谢谢。
看着你的描述,是越来越晕了............................我给你简化一下,看是不是这意思.一,工程是一个OCX.二,除了必有的一个UserControl外,你还添加了一个窗体.三,窗体需要与UserControl交互.如果是这样,我猜你那窗体是用作参数设置之类的吧?可以在窗体里面声明一个公有对象,再在初始化窗体时把控件的实例传入:'以下代码在Form1中 public objControl as object'以下代码在UserControl中dim withevents objFrm as Form1 '以事件方式声明一个窗体类型的对象'在显示窗体之前,先将自己的实例传进去set objfrm=new form1set objfrm.objcontrol=meobjfrm.show vbmodal这样,窗体就可以通过操作objControl来操作当前控件的一个实例了.而窗体里声明的事件也可以在控件中接收.你要把窗体也看成一个"类",只不过这个"类"是有界面的而已.
Public Function sReady() As String
'返回值:1,成功;0,失败
on error goto a0
call 控件B.isready
sReady = 1
exit Function
a0: sReady = 0
End Function
是这样的
我现在一个ocx控件,在这个控件中设计的时候调用了一个窗体,现在在窗体中怎么调用用户控件中的方法。
窗体的事件又怎么通知用户控件。
你说的窗体在不在ocx里?
Public sub sReady()
....
end sub控件的form中调用用户控件的sReady方法:
call UserControl1.sReady
(建一个用户控件,里面有如下的测试代码:
Public Event MyEvent()
Public Sub Mysub()
msgbox "控件方法调用"
End Sub
在控件工程里新建一个窗体,命名为frmtest,里面有如下的代码:
Private Sub Form_Load()
call UserControl.Mysub '调用不成功
End Sub
Private Sub Form_Unload(Cancel As Integer)
'把事件返回给MyEvent,怎么实现。
End Sub
请指点,最好能附代码,谢谢。
public objControl as object'以下代码在UserControl中dim withevents objFrm as Form1 '以事件方式声明一个窗体类型的对象'在显示窗体之前,先将自己的实例传进去set objfrm=new form1set objfrm.objcontrol=meobjfrm.show vbmodal这样,窗体就可以通过操作objControl来操作当前控件的一个实例了.而窗体里声明的事件也可以在控件中接收.你要把窗体也看成一个"类",只不过这个"类"是有界面的而已.
我测试了好像不行啊我的意思:
一,工程是一个OCX. 二,除了必有的一个UserControl外,你还添加了一个窗体. 三,窗体需要与UserControl交互. 窗体需调用UserControl的方法,UserControl需能够获取窗体中的事件。