Ach*_*les 3 .net vb.net events delegates event-handling
我正在使用AddHandler将函数连接到我动态创建的控件的事件:
Public Delegate Sub MyEventHandlerDelegate(ByVal sender As Object, ByVal e As System.EventArgs)
Public Sub BuildControl(EventHandler as System.Delegate)
dim objMyButton as new button
AddHandler objMyButton.Click, EventHandler
end Sub
Run Code Online (Sandbox Code Playgroud)
此代码生成运行时异常,指出:
无法将"MyEventHandlerDelegate"类型的对象强制转换为"System.EventHandler"类型
即使AddHandler作为"System.Delegate"类型的参数,我对System.Delegate的理解是什么?什么类型"EventHandler需要转换为AddHandler可以接受的类型? 感谢您的帮助!
听起来问题是你在混合类型.点击事件需要一个System.EventHandler
.您的自定义委托,虽然它具有相同的签名,但System.EventHandler
不是System.EventHandler
.
因此,您需要更改方法,System.EventHandler
而不是System.Delegate
:
Public Sub BuildControl(EventHandler as System.EventHandler)
dim objMyButton as new button
AddHandler objMyButton.Click, EventHandler
End Sub
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5310 次 |
最近记录: |