Come posso RaiseEvent in VB.net
-
25-10-2019 - |
Domanda
Ho 2 progetto nella mia soluzione.
Diciamo Proj A e B. Proj
Proj A sta avendo il mio evento personalizzato. e lo stesso Proj sta sollevando quell'evento usando RaiseEvent Funzione di Vb.net E Proj B sta avendo riferimento del Proj A.
Proj B è l'aggiunta di gestore per l'evento personalizzato di Proj A.
, ma il mio evento personalizzato sopraelevazione rilancio. Potrebbe qualcuno mi può spiegare come posso farlo.?
Modifica:
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
sto chiamando la funzione handleSwipeCardRequest prima e poi alzando il suo evento.
Soluzione
verrà sollevata tuo evento quando kbHook_KeyDown
viene chiamato, ammesso che viene chiamato dopo l'esecuzione della linea AddHandler
. Siete sicuri che la funzione KeyDown viene chiamata? Come ha detto Hans Passant, si potrebbe perdere un parola chiave Handles:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
Altri suggerimenti
Another way :
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown