Как я могу RaiseEvent в VB.net

I have 2 project in my Solution.
Lets say Proj A and Proj B.

Proj A is having my custom event. and same Proj is Raising that event using RaiseEvent Function of Vb.net And Proj B is having reference of Proj A.
Proj B is adding handler for Proj A's custom event.

но мое пользовательское событие не может подняться. Может ли кто-нибудь объяснить мне, как я могу это сделать.?

Редактировать:

Проект А

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

Проект Б

 Private Sub handleSwipeCardRequest(ByVal msgText As String)
        AddHandler CardReader.Main.cardReadComplete, AddressOf sendSwipeCardDetails
        CardReader.Main.cardReadComplete()
End Sub

Сначала я вызываю функцию handleSwipeCardRequest, а затем поднимаю ее событие.


person Jaynesh Shah    schedule 18.10.2011    source источник
comment
Объявили ли вы переменную, содержащую экземпляр любого типа в Proj A, используя ключевое слово WithEvents? Пожалуйста, опубликуйте пример кода.   -  person Simon    schedule 18.10.2011
comment
Кажется, вы перепутали название Sub и Event. И похоже, что вам придется нажать клавишу, чтобы вызвать событие. Хотя это событие KeyDown без ключевого слова Handles, поэтому оно, вероятно, никогда не сработает.   -  person Hans Passant    schedule 18.10.2011


Ответы (2)


Ваше событие будет вызвано при вызове kbHook_KeyDown, при условии, что оно будет вызвано после выполнения строки AddHandler. Вы уверены, что вызывается функция KeyDown? Как сказал Ханс Пассант, вам может не хватать ключевого слова Handles:

Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
    ...
End Sub
person Meta-Knight    schedule 18.10.2011

Другой путь :

AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown
person Thomas    schedule 15.12.2015