如何在类库(DLL)上声明事件并在表单上捕获它们?

时间:2009-11-21 03:21:27

标签: vb.net

我需要在类库上设置事件并以表格形式捕捉它们。

例如,我在DLL file中运行一个sub,我需要“接收”该类中的sub正在运行的事件。

DLL文件是由我在Visual Basic中创建的,但是如何在其上引发事件以便在表单中捕获?

请提供一个例子。

2 个答案:

答案 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中调用此方法(而不是触发事件)。