vb.netでraiseventにどうすればよいでしょうか
-
25-10-2019 - |
質問
ソリューションには2つのプロジェクトがあります。
proj aとproj Bとしましょう
Proj Aは私のカスタムイベントを持っています。また、VB.NETとProj BのRaiseEnvent関数を使用して、同じProjがそのイベントを提起しています。
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関数を呼び出してから、イベントを上げています。
解決
あなたのイベントはいつ発生します kbHook_KeyDown
それが後に呼ばれると仮定して、呼び出されます AddHandler
行が実行されます。キーダウン関数が呼び出されますか? Hans Passantが言ったように、あなたはハンドルキーワードを欠いているかもしれません:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
他のヒント
別の方法 :
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown
所属していません StackOverflow