如何在VB.net中提升事件
我的解决方案中有两个项目。 假设项目A和项目B。如何在VB.net中提升事件,vb.net,raiseevent,Vb.net,Raiseevent,我的解决方案中有两个项目。 假设项目A和项目B。 项目A正在进行我的自定义活动。同一个项目使用Vb.net的RaiseEvent函数引发该事件,项目B引用了项目A。 项目B正在为项目A的自定义事件添加处理程序 但我的定制活动无法提高。 谁能解释一下我该怎么做 编辑: 项目A Public Shared Event cardReadComplete(ByVal data As String) Public Sub kbHook_KeyDown(ByVal Key As Windows.Form
项目A正在进行我的自定义活动。同一个项目使用Vb.net的RaiseEvent函数引发该事件,项目B引用了项目A。 项目B正在为项目A的自定义事件添加处理程序
但我的定制活动无法提高。 谁能解释一下我该怎么做 编辑: 项目APublic Shared Event cardReadComplete(ByVal data As String)
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys)
IO.File.AppendAllText("E:\log.log", Key.ToString() & vbCrLf)
RaiseEvent cardReadComplete(encryptedData)
End Sub
项目B
Private Sub handleSwipeCardRequest(ByVal msgText As String)
AddHandler CardReader.Main.cardReadComplete, AddressOf sendSwipeCardDetails
CardReader.Main.cardReadComplete()
End Sub
我首先调用handleSwipeCardRequest函数,然后引发它的事件。当调用kbHook\u KeyDown时,您的事件将被引发,假设它在执行AddHandler行后被调用。您确定调用了KeyDown函数吗?正如Hans Passant所说,您可能缺少一个关键词:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
另一种方式:
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown
您是否已使用WithEvents关键字声明了包含项目A中任何类型实例的变量?请发布一些示例代码。您似乎混淆了Sub和事件名称。看起来你必须按下一个键才能触发这个事件。虽然它是一个没有Handles关键字的KeyDown事件,所以它可能永远不会触发。