Вопрос

У меня есть 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top