【发布时间】:2015-12-15 19:09:51
【问题描述】:
我的解决方案中有 2 个项目。
假设项目 A 和项目 B。
Proj A 正在举办我的自定义活动。并且同一个项目正在使用 Vb.net 的 RaiseEvent 函数引发该事件,并且项目 B 具有项目 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 函数,然后引发它的事件。
【问题讨论】:
-
您是否使用 WithEvents 关键字声明了保存 Proj A 中任何类型实例的变量?请发布一些示例代码。
-
您似乎混淆了 Sub 和 Event 名称。看起来你必须按下一个键才能触发事件。虽然它是一个没有 Handles 关键字的 KeyDown 事件,所以它可能永远不会触发。
标签: vb.net raiseevent