我的控件由两部分组成:1是ActiveX Control控件,2是一个窗体。我的控件工作方式如下,首先控件被激活,执行一部分代码,然后窗体弹出,执行窗体的代码,然后窗体Unload,调用控件的Public事件。问题出来了,我不知道如何才能在窗体Unload时,调用控件的公用事件。我试过UserControl.Falshlist,UsrManage.Falshlist(UsrManage为窗体名称),还是不行,请问该如何实现。谢谢!!!
解决方案 »
- 如何设置单元格格式为上面双划线
- 【散分】终于可放200分了,正好又要过年了,放分。顺便请大家讨论一下VB|.NET|DELPHI....
- 如何更改表的名称
- VB+Access问题!win2000平台(在VB中写的代码)之三
- 为什么称fuction为函数,而sub就不是?它们不都是通用过程吗?
- 高技术问题,订单管理系统:怎样让一条客户信息对应多条客户订单内容?
- 学什么好呢?
- 应该从哪下手?(一定送分100)
- 关于vb中帮助文件的调用问题
- 怎样在VB中保存数据库?
- 高手请指教。VB中不借助第三方控件解压缩ZIP文件问题(安装有ZIP,使用ZIP的控制台命令)。
- 经别人推荐,来这里求助:工作中遇到将多张内容项相同的excel表格导入sqlserver的问题,请教大家
eg:对commandbutton的click事件,call commandbutton_click
MsgBox ("ok")
End SubPrivate Sub UserControl_Initialize() '激活控件时发生此事件,弹出窗体.
fout.Show 'fout是在控件工程中的一个窗体
End Sub'当fout窗体关闭时,发生下面的事件,按大家的说法,用Call来调用这些自定义的事件、过程和公用的事件,但是,这三个都发生错误!!!
Private Sub Form_Unload(Cancel As Integer)
Call MyEvent '子函数未定义
Call Mysub '子函数未定义
Call UserControl_Click '子函数未定义
End Sub按上面的代码,在工程中加载这个控件时,会正常打开fout窗体,当关闭窗体时,正常触发Unload事件,但是运行里面的代码全部出错!
所以,不能用call来调事这些事件和过程!
(1)
在控件工程中建一个模块,在模块中加入下面的代码:
Public i As Integer(2)建一个用户控件,里面有如下的测试代码:Public Event MyEvent()Public Sub Mysub()
RaiseEvent MyEvent
Call UserControl_Click
End SubPrivate Sub Timer1_Timer()
If i = 1 Then
Timer1.Interval = 0
Call Mysub
End If
End SubPrivate Sub UserControl_Click()
MsgBox ("控件的click事件发生")
End SubPrivate Sub UserControl_Initialize()
fout.Show
Timer1.Interval = 10
End Sub
在这个控件中,要加入一个时间控件,用来检测变量i的值(3)
在控件工程里新建一个窗体,命名为fout,里面有如下的代码:
Private Sub Form_Load()
i = 0
End SubPrivate Sub Form_Unload(Cancel As Integer)
i = 1
End Sub(4)添加一个工程,作测试用,在这个工程的窗体form1中加载上面的控件,可以发现,控件加载时,会弹出fout窗体,当fout窗体关闭时,弹出消息"控件的click事件发生"总结,只能在控件内部用call,不能在其外部用call来调用控件内部的过程和事件.
Unload Me
Call mysub
End SubPrivate Sub mysub()
MsgBox "OK!"
End Sub这样就可以啊,为什么不行?以上的代码在同一窗体中!
call 窗体名.控件名_事件