Как "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
объект дает вам объект, который вызвал событие