Wie kann ich in VB.NET RaiseEvent?
-
25-10-2019 - |
Frage
Ich habe 2 Projekt in meiner Lösung.
Sagen wir proj a und proj B.
Proj A hat meine benutzerdefinierte Veranstaltung. Das gleiche Proj erhöht dieses Ereignis mit der RaiseEvent -Funktion von VB.NET und Proj B hat Referenz von Proj A.
Proj B fügt Handler für die benutzerdefinierte Veranstaltung von Proj A hinzu.
Aber meine individuelle Veranstaltung kann nicht erhöhen. Könnte mich jemand erklären, wie ich das tun kann?
Bearbeiten:
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
Ich rufe zuerst HandlesWipeCardRequest -Funktion an und erhöhe dann seine Veranstaltung.
Lösung
Ihre Veranstaltung wird angesprochen, wenn kbHook_KeyDown
wird angerufen, vorausgesetzt, es wird nach dem angerufen AddHandler
Zeile wird ausgeführt. Sind Sie sicher, dass die Schlüsseldown -Funktion aufgerufen wird? Wie Hans Passant sagte, fehlt Ihnen möglicherweise ein Schlüsselwort für Handles:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
Andere Tipps
Ein anderer Weg :
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown