我试图将一些代码从C#移植到VB.net,我遇到了一个简单的事件处理程序。
C#:
hook.KeyPressed += new EventHandler<KeyPressedEventArgs>(hook_KeyPressed);
我已经在VB.net中编写了这样的内容:
AddHandler hook.KeyPressed, AddressOf hook_KeyPressed
但我的转换在C#代码中缺少对KeyPressedEventArgs的任何引用,我不确定我是否正确执行此操作。任何帮助将不胜感激。
答案 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