这可能是一个愚蠢的问题,但我无法让它发挥作用。
使用第三方C#库,我需要通过事件处理程序获取实时数据,它是这样的:
Library.KEvents bnoEvent = new Library.KEvents();
envtsList.Add(bnoEvent);
/*
Some code to set bnoEvent up
*/
bnoEvent.OnEvent += new Library._IKEventsEvents_OnEventEventHandler(bnoEvent_OnEvent);
函数bnoEvent_OnEvent
永远不会执行。
我得到的演示代码(在VB中)看起来像这样:
If KEventsA Is Nothing Then
Set KEventsA = New Library.KEvents
End If
/* Setting KEventA up */
正在调用的方法是:
Private Sub KEvents_OnEvent(data As KType)
这让我疯狂!我在这个函数和KEventA
对象之间找不到任何连接!怎么知道?
我知道在不知道这个库实际工作原理的情况下进行调试是非常困难的,但是除了声明函数并将其添加为新的eventHandler之外,在注册事件时我应该做些什么?
答案 0 :(得分:1)
使用事件子上的Addhandler
语句或Handles
子句。这就是VB设置代表的方式。
If KEventsA Is Nothing Then
KEventsA = New Library.KEvents
Addhandler KEventsA.OnEvent, AddressOf KEvents_OnEvent
End If
或
'must use this for declarations for this way
Private WithEvents KEventsA As New Library.KEvents
'then the method
Private Sub KEvents_OnEvent(data As KType) Handles KEventsA.OnEvent
C#
Library.KEvents KEventsA = new Library.KEvents;
KEventsA.OnEvent += new EventHandler(KEvents_OnEvent);