2010-08-11 52 views
1

我想在我的VB.NET代码中添加一个事件。我完成了VB.net编程,但在事件处理方面经验不足。在VB.Net中需要事件处理语法的帮助

我已经声明如下

public WithEvents FormEventCapture As vFormAgent.__vFormAgentLib_Event 

然后我把窗体加载事件下面的代码

FormEventCapture = new vFormAgent.__vFormAgentLib_FormEventEventHandler() 

AddHandler FormEventCapture.FormEvent, AddressOf Me.FormEventCapture_FormEvent 

它是正确的吗?

我编译时出现以下错误

Delegate 'vFormAgent.__vFormAgentLib_FormEventEventHandler' requires an 'AddressOf' expression or lambda expression as the only argument to its constructor. (BC32008) 

,所以我需要一个参数传递给此构造,然后我改变如下

FormEventCapture = new vFormAgent.__vFormAgentLib_FormEventEventHandler(AddressOf Me.FormEventCapture_FormEvent) 

然后我得到以下错误

Lambda expression cannot be converted to 'vFormAgent.__vFormAgentLib_Event' because 'vFormAgent.__vFormAgentLib_Event' is not a delegate type. (BC36625) 

我无法弄清楚是什么问题。

任何人都可以告诉我什么是问题?

回答

0

我可以弄清楚是什么问题。

FormEventCapture_FormEvent应该与委托函数具有相同的签名,即__vFormAgentLib_FormEventEventHandler。

当我更改FormEventCapture_FormEvent的签名时,它没有给出错误。

但是我得到一些运行时错误,如果我没有成功确定我已经问你所有的帮助。

谢谢。