2012-02-16 80 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