Как я могу извлечь в VB.net
-
25-10-2019 - |
Вопрос
У меня есть 2 проекта в моем решении.
Допустим, Proj A и Proj B.
Proj A имеет мое пользовательское мероприятие. И тот же проект повышает это событие, используя функцию извлечения из VB.NET и 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, а затем повышаю ее событие.
Решение
Ваше мероприятие будет поднято, когда kbHook_KeyDown
называется, предполагая, что его вызывают после AddHandler
строка выполнена. Вы уверены, что функция Keydown вызывается? Как сказал Ханс Пассант, вы можете пропустить ключевое слово ручки:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
Другие советы
Другой путь :
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown