关于raiseevent的使用
本帖最后由 bcrun 于 2012-12-01 12:33:01 编辑 第一次发帖……
我最近要用到raiseevent来触发其他事件。但是触发后事件的内容没有执行。代码如下,望前辈指点一二
Private WithEvents Doit() as dothat
Public Event Doit()
Dim I As Integer
Dim dothat
Private Sub Doit()
Me.Caption = "now event Doit"
MsgBox "look"
End Sub
Private Sub CWButton1_ValueChanged(ByVal Value As Boolean)
If CWButton1.Value = True Then
Timer1.Enabled = True
Else
Timer1.Enabled = False
End If
End Sub
Private Sub Form_Load()
Timer1.Interval = 600
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Time
I = I + 1
If I > 5 Then
RaiseEvent Doit
End If
Me.Caption = I
End Sub
[解决办法]
Private WithEvents Doit() as dothat
这是VB6代码吗?WithEvents 怎么能使用数组?
要使用事件机制,必须
在类模块或者控件或者窗口模块中定义事件 (event 声明)并且在适当的时候raiseevent
比如 class1中
event doit(参数表)
..............
sub aSub(....)
raiseevent doit(参数)
end sub
在窗口模块或者其他类、控件模块中
dim withevents x as class1
sub form_load
set x=new class1 'withevents声明时,不能在声明中直接使用new
end sub
private sub [color=#FF0000x_doit(参数表)][/color]
'处理事件代码
end sub
[解决办法]
类模块,窗口模块,控件模块中都可以,就是不能用于bas模块,其它都可以