用VB8实现的委托和事件

ContractedBlock.gif ExpandedBlockStart.gif 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 IntegerHandles 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 IntegerHandles 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值