在VS2008中生成事件处理程序

本文关键字:事件处理 程序 VS2008 | 更新日期: 2023-09-27 18:12:24

我试图在windows窗体应用程序中生成一个事件处理程序。当我写

myAlgorithm.nextNodeFound += 

并按'Tab'两次它自动生成一个新的处理程序,但这个处理程序在EventArgs上工作,我需要的是有一个处理程序与CustomEventArgs一起工作。我试图修改自动生成处理程序的签名,但随后它给出了错误

*没有重载myAlgo_nextNodeFound匹配委托系统。EventHandler *

请建议如何使它工作

在VS2008中生成事件处理程序

看起来问题是您已经将nextNodeFound事件声明为EventHandler类型。如果你需要它与你的自定义参数一起工作,你应该使用一个使用正确参数的委托类型…一般的EventHandler<TEventArgs>类型可能是您想要的:

public event EventHandler<CustomEventArgs> NextNodeFound;

注意,我已经更改了符合。net命名约定的名称。这也是假设CustomEventArgs派生自EventArgs -如果它还没有,我建议你这样做。您可能还希望更改名称以指示如何自定义 -例如NodeTraversalEventArgs或类似的内容。

听起来你可能对。net事件比较陌生——你可能想阅读我关于事件和委托的文章。