Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VB.net中提升事件_Vb.net_Raiseevent - Fatal编程技术网

如何在VB.net中提升事件

如何在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和项目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.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事件,所以它可能永远不会触发。