如何“AddHandler”尝试从外部库中捕获事件

时间:2016-06-17 12:50:45

标签: vb.net event-handling addhandler raiseevent

我想在外部库发生事件后立即调用函数。

我有一系列相机对象(不同的相机),一旦他们抓取图像(外部触发)就会创建一个事件。摄像机由外部库(Basler)定义,并在代码中定义,因此事件定义如下:

cameras(i).StreamGrabber.ImageGrabbed

我创建了一个子

Sub ImageGrabEvent(sender As Object, e As EventArgs)
    MsgBox("Aha")
End Sub</code>

并尝试使用

在主要部分注册
AddHandler cameras(i).StreamGrabber.ImageGrabbed, AddressOf (ImageGrabEvent)

并尝试了

AddHandler cameras(i).StreamGrabber.ImageGrabbed, ImageGrabEvent()

以及“新”或其他的变体。

额外挑战:任何相机都可以举起活动,我怎样才能在我的潜水艇中识别出哪个相机?

1 个答案:

答案 0 :(得分:1)

你不应该在处理程序方法周围有括号(括号),所以这个:

AddHandler cameras(i).StreamGrabber.ImageGrabbed, AddressOf (ImageGrabEvent)

应该是:

AddHandler cameras(i).StreamGrabber.ImageGrabbed, AddressOf ImageGrabEvent

sender对象为您提供引发事件的对象