我怎样才能在VB.net中使用RaiseEvent

时间:2011-10-18 10:04:12

标签: vb.net raiseevent

我的解决方案中有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函数,然后再调用它的事件。

2 个答案:

答案 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