更新时间:2023-10-16 22:02:28
你可以使用反射。
You can use reflection.
Imports System.Reflection
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.setHandler("Click", CType(AddressOf test, EventHandler), Me.Button1)
Me.setHandler("Click", CType(AddressOf test, EventHandler), Me.Button1)
Me.setHandler("Click", CType(AddressOf test, EventHandler), Me.Button1)
End Sub
Sub setHandler(eventName As String, handler As [Delegate], o As Object)
Dim eInfo As EventInfo = o.GetType.GetEvent(eventName, BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.IgnoreCase)
eInfo.RemoveEventHandler(o, handler)
eInfo.AddEventHandler(o, handler)
End Sub
Sub test(sender As Object, e As EventArgs)
MsgBox("Ok")
End Sub
End Class
此代码没有用处:
There is no use for this code:
Private Sub setHandler(evt As Event, hndler As eventhandler)
RemoveHandler evt, hndler
AddHandler evt, hndler
End Sub
您删除然后添加相同的处理程序。这样做没用。它与此代码有些相同:
You remove and then add the same handler. It's useless to do this. It's somewhat the same as this code:
temp = a
a = 100
a = temp
也许解释一下你想要达到的目标,这样我就可以给你一个解决方案:-D
祝你好运!
Maybe explain what you want to achieve so I can maybe give you a solution for that :-D
Good luck!