我需要在类库上设置事件并以表格形式捕捉它们。
例如,我在DLL file中运行一个sub,我需要“接收”该类中的sub正在运行的事件。
DLL文件是由我在Visual Basic中创建的,但是如何在其上引发事件以便在表单中捕获?
请提供一个例子。
答案 0 :(得分:7)
dll中的代码
Public Event MySpecialEvent ()
Private Sub Test
RaiseEvent MySpecialEvent
End Sub
表单中的代码
Private _MyDll as MyDLL
Public Sub Main
_MyDLL = New MyDLL
AddHandler _MyDLL.MySpecialEvent, AddressOf MySpecialEventHandler
End Sub
Private Sub MySpecialEventHandler
'Put your code here to act upon the handled event
End Sub
您还需要使用
删除表单生命中某个时刻的事件处理程序RemoveHandler _MyDLL.MySpecialEvent, AddressOf MySpecialEventHandler
答案 1 :(得分:0)
当你谈到'本机'非托管DLL时,没有直接的方法来实现这一点。 您必须声明应该用于此事件的方法签名。 然后,您必须提供一种方法将指向匹配此签名的方法的指针放入DLL中(提供回调方法)。然后,您可以在DLL中调用此方法(而不是触发事件)。