我的解决方案中有2个项目。
让我们说Proj A和Proj B.
Proj A正在进行我的自定义活动。和Proj一样使用Vb.net的RaiseEvent功能提升该事件而Proj B正在参考Proj A.
Proj B正在为Proj A的自定义事件添加处理程序。
但是我的自定义事件无法提升。 任何人都可以解释我怎么能这样做。?
编辑:
Proj 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
Proj B
Private Sub handleSwipeCardRequest(ByVal msgText As String)
AddHandler CardReader.Main.cardReadComplete, AddressOf sendSwipeCardDetails
CardReader.Main.cardReadComplete()
End Sub
我先调用handleSwipeCardRequest函数,然后再调用它的事件。
答案 0 :(得分:0)
当kbHook_KeyDown
被调用时,将会引发您的事件,假设在AddHandler
行执行后调用它。你确定要调用KeyDown函数吗?正如Hans Passant所说,你可能会错过一个Handles关键字:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
答案 1 :(得分:0)
另一种方式:
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown