[英]How can I RaiseEvent in VB.net
我的解决方案中有2个项目。
假设Proj A和ProjB。
项目A正在执行我的自定义事件。 并且相同的Proj使用Vb.net的RaiseEvent函数引发该事件,而Proj B具有Proj A的引用。
Proj B正在为Proj A的自定义事件添加处理程序。
但我的自定义事件无法引发。 谁能解释我该怎么做?
编辑:
项目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
项目B
Private Sub handleSwipeCardRequest(ByVal msgText As String)
AddHandler CardReader.Main.cardReadComplete, AddressOf sendSwipeCardDetails
CardReader.Main.cardReadComplete()
End Sub
我先调用handleSwipeCardRequest函数,然后引发它的事件。
其他方式 :
AddHandler kbHook.KeyDown , AddressOf Me.kbHook_KeyDown
假设在执行AddHandler
行后调用了kbHook_KeyDown
,则会引发您的事件。 您确定KeyDown函数会被调用吗? 正如Hans Passant所说,您可能缺少一个Handles关键字:
Public Sub kbHook_KeyDown(ByVal Key As Windows.Forms.Keys) Handles kbHook.KeyDown
...
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.