gpt4 book ai didi

.net - 了解 AddHandler 并传递委托(delegate)和事件

转载 作者:行者123 更新时间:2023-12-04 19:59:05 26 4
gpt4 key购买 nike

我正在使用 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

此代码生成一个运行时异常说明:

无法将“MyEventHandlerDelegate”类型的对象转换为类型“System.EventHandler”

尽管 AddHandler 接受“System.Delegate”类型的参数,但我对 System.Delegate 有什么不了解? “EventHandler 需要转换为 AddHandler 可以接受的类型是什么类型?感谢您的帮助!

最佳答案

听起来问题在于您正在混合类型。单击事件需要 System.EventHandler。您的自定义委托(delegate)虽然具有与 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

关于.net - 了解 AddHandler 并传递委托(delegate)和事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com