2010-08-11 73 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的簽名時,它沒有給出錯誤。

但是我得到一些運行時錯誤,如果我沒有成功確定我已經問你所有的幫助。

謝謝。