当前位置:编程学习 > C#/ASP.NET >>

VB.net 中,如何判断一个事件是否已被绑定...

VB.net 中,如何判断一个事件是否已被绑定... --------------------编程问答-------------------- 调用一下就知道是否被绑定了。
--------------------编程问答-------------------- 不用判断,直接Remove也不会出错。 --------------------编程问答-------------------- AddHandler Button1.Click, AddressOf Test
使用GetInvokeList来获得委托连
http://bytes.com/topic/visual-basic-net/answers/348728-eventhandlerlist-question --------------------编程问答--------------------
Imports System.Reflection

Module Module1

    Sub Main()
        Dim obj As New EventTestClass
        '注册事件
        AddHandler obj.MyEvent, Function(v As Integer) v + 1
        '反射获取事件委托列表
        Dim fi As FieldInfo = obj.GetType().GetField("MyEventEvent", BindingFlags.Instance Or BindingFlags.NonPublic)
        Dim del As System.Delegate = fi.GetValue(obj)
        '如果注册过,则不是Nothing
        If del Is Nothing Then
            Console.WriteLine("尚未注册事件")
        Else
            Console.WriteLine("注册事件了")
        End If

        Console.ReadKey()
    End Sub

    Public Class EventTestClass
        Public Delegate Sub MyEventHandler(ByVal value As Integer)
        Public Event MyEvent As MyEventHandler

        Public Sub Foo()
            RaiseEvent MyEvent(88)
        End Sub
    End Class

End Module


反射才能比较完善的实现检查事件是否注册过。
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,