如何从VB.Net调用C#事件

本文关键字:调用 事件 Net VB | 更新日期: 2023-09-27 18:24:44

我有一个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中做到这一点呢?

如何从VB.Net调用C#事件

在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

现在您不需要手动注册处理程序。