繁体   English   中英

我如何在VB.net中进行RaiseEvent

[英]How can I RaiseEvent in VB.net

我的解决方案中有2个项目。
假设Proj A和ProjB。

项目A正在执行我的自定义事件。 并且相同的Proj使用Vb.net的RaiseEvent函数引发该事件,而Proj B具有Proj A的引用。
Proj B正在为Proj 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函数,然后引发它的事件。

其他方式 :

AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown

假设在执行AddHandler行后调用了kbHook_KeyDown ,则会引发您的事件。 您确定KeyDown函数会被调用吗? 正如Hans Passant所说,您可能缺少一个Handles关键字:

Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
    ...
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM