Как "AddHandler" пытается отловить событие из внешней библиотеки

Я хочу вызвать функцию, как только произойдет событие из внешней библиотеки.

У меня есть массив объектов камеры (разных камер), которые создают событие, как только они получают изображение (запускается извне). Камеры определяются внешней библиотекой (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 ответ

Решение

Вы не должны иметь скобки (скобки) вокруг метода-обработчика, так что это:

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

должно быть:

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

sender объект дает вам объект, который вызвал событие

Другие вопросы по тегам