[上一個活動]工作,我有以下的代碼創建一個按鈕:getfield命令不適用於按鈕控制
Dim B As New Button
B.Parent = Me
B.Location = New Point(50, 50)
AddHandler B.Click, Sub()
MsgBox("Hi")
End Sub
'I try to get the field info for the click event inorder to get the event handler and remove it
Dim FieldInfo As FieldInfo = B.GetType.GetField("Click", BindingFlags.[Static] Or BindingFlags.NonPublic Or BindingFlags.Public)
Dim obj As Object = FieldInfo.GetValue(Obj_)
Dim EI As EventInfo = Obj_.GetType.GetEvent(EventName)
EI.RemoveEventHandler(Obj_, obj)
但字段信息是不斷空。我嘗試了許多事件名稱ClickEvent,EventClick ...但他們都沒有讓我得到結果。
有人知道我的代碼中缺少什麼嗎?
預先感謝您。
謝謝您的回答。其實我試圖動態地刪除一個事件處理程序。你知道這是否可能不使用GetField? (我更新了這篇文章) – 2014-10-27 11:11:41
這是對你原來的問題的完整答案。第二個問題應該是第二個問題!無論如何@Niranjan Kala的答案似乎涵蓋了你所要求的所有信息,http://dkowalski.com/blog/archive/2009/12/22/how-to-get-event-handlers-list -using-reflection.aspx具體。請接受任一答案。 – tolanj 2014-10-27 12:20:38