2012-02-16 76 views
2

我有一個C#類庫。在該類我宣佈一個事件作爲屬性如何從VB.Net調用C#事件

private static event MouseEventHandler s_MouseClick; 
public static event MouseEventHandler MouseClick 
{ 
    add 
    { 
     s_MouseClick += value; 
    } 
    remove 
    { 
     s_MouseClick -= value; 
    } 
} 

我有另一個項目寫在VB.net,按鈕上的點擊我想要做這樣的事情:

cls.MouseClick += cls_MouseClick; 

void cls_MouseClick(object sender, KeyPressEventArgs e) 
{ 
} 

這是我怎麼會在C#中做到這一點。但我如何在VB中做到這一點?

回答

7

在VB中,註冊事件處理程序使用AddHandler

AddHandler cls.MouseClick, AddressOf cls_MouseClick 

使用RemoveHandler註銷事件處理程序。

或者,您可以使用聲明性語法。那就是:宣佈該成員如下:

Private WithEvents cls As YourClassType 

,並宣佈這樣的處理程序:

Private Sub cls_MouseClick(ByVal sender As Object, ByVal e As KeyPressEventArgs) Handles cls.MouseClick 
End Sub 

現在你不需要手工註冊的處理程序。

+0

嗨K ... 感謝您的回覆。我的問題解決了。 再次感謝 Umang – CuriousMind 2012-02-16 12:09:58

+0

@ user1213390:考慮接受它,如果它回答你的問題。 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – 2012-02-16 12:13:42