用VB8实现的委托和事件
Code
Module Module1
'***************用WithEvents和Handles子句处理对象
'第一步:创建包含事件的简单类
Class C1
Public Event anEvent(ByVal EventNumber As Integer)
End Class
'在处理事件的[类或模块],声明事件源的对象变量
Public WithEvents ClassInst As C1 = New C1
'这里本来是自动生成的,但是手动也可以,注意函数签名式
Public Sub ClassInst_anEvent(ByVal EventNumber As Integer) Handles ClassInst.anEvent
Console.WriteLine("接受的事件参数数字是:" & CStr(EventNumber))
End Sub
'------------------------------------------------------------------------
'**********下面用AddHandles处理事件
'第一步是写一个用来处理事件的子例程sub
Public Sub ehandler(ByVal EventNumber As Integer)
Console.WriteLine("接受的事件参数是" & CStr(EventNumber))
End Sub
'第二步产生事件源的对象,与上面WithEvnets的区别是,这个变量可以是过程中的本地变量
'第三步是用AddHandler语句,指定事件发送器名称,用AddressOf提供处理程序的名称
'=-----------------------------------------------------------------------------
'处理基类中的事件
Public Class c2
Inherits C1
Public Sub kkdk(ByVal num As Integer) Handles MyBase.anEvent
Console.WriteLine("c2 handler")
End Sub
End Class
Sub Main()
ClassInst = New C1
ClassInst_anEvent(8932)
Console.ReadKey()
Console.WriteLine()
Dim cc As New C1
AddHandler cc.anEvent, AddressOf ehandler
ehandler(30320)
Console.ReadKey()
Console.WriteLine()
Dim c22 As New c2
c22.kkdk(200230)
Console.ReadKey()
End Sub
End Module
Module Module1
'***************用WithEvents和Handles子句处理对象
'第一步:创建包含事件的简单类
Class C1
Public Event anEvent(ByVal EventNumber As Integer)
End Class
'在处理事件的[类或模块],声明事件源的对象变量
Public WithEvents ClassInst As C1 = New C1
'这里本来是自动生成的,但是手动也可以,注意函数签名式
Public Sub ClassInst_anEvent(ByVal EventNumber As Integer) Handles ClassInst.anEvent
Console.WriteLine("接受的事件参数数字是:" & CStr(EventNumber))
End Sub
'------------------------------------------------------------------------
'**********下面用AddHandles处理事件
'第一步是写一个用来处理事件的子例程sub
Public Sub ehandler(ByVal EventNumber As Integer)
Console.WriteLine("接受的事件参数是" & CStr(EventNumber))
End Sub
'第二步产生事件源的对象,与上面WithEvnets的区别是,这个变量可以是过程中的本地变量
'第三步是用AddHandler语句,指定事件发送器名称,用AddressOf提供处理程序的名称
'=-----------------------------------------------------------------------------
'处理基类中的事件
Public Class c2
Inherits C1
Public Sub kkdk(ByVal num As Integer) Handles MyBase.anEvent
Console.WriteLine("c2 handler")
End Sub
End Class
Sub Main()
ClassInst = New C1
ClassInst_anEvent(8932)
Console.ReadKey()
Console.WriteLine()
Dim cc As New C1
AddHandler cc.anEvent, AddressOf ehandler
ehandler(30320)
Console.ReadKey()
Console.WriteLine()
Dim c22 As New c2
c22.kkdk(200230)
Console.ReadKey()
End Sub
End Module