将此事件处理程序注册从C#转换为VB.net的正确方法是什么?

时间:2015-02-07 21:25:38

标签: c# vb.net

我试图将一些代码从C#移植到VB.net,我遇到了一个简单的事件处理程序。

C#:

hook.KeyPressed += new EventHandler<KeyPressedEventArgs>(hook_KeyPressed);

我已经在VB.net中编写了这样的内容:

AddHandler hook.KeyPressed, AddressOf hook_KeyPressed

但我的转换在C#代码中缺少对KeyPressedEventArgs的任何引用,我不确定我是否正确执行此操作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

请记住,事件是委托。要订阅事件,事件处理程序的签名必须与委托相同。只要你的方法有正确的签名,你就做对了。只需确保您的事件处理程序的EventArgs参数属于KeyPressedEventArgs类型。

C#:

hook.KeyPressed += new EventHandler<KeyPressedEventArgs>(hook_KeyPressed);

新C#语法:

hook.KeyPressed += hook_KeyPressed;

VB.net

AddHandler hook.KeyPressed, AddressOf hook_KeyPressed

VB.net中的处理程序:

Sub hook_KeyPressed(ByVal sender As Object, ByVal e As KeyPressedEventArgs)
    'code here
End Sub