RaiseEvent из UserControl, помещенного в UserControl, который находится в форме

У меня есть форма Windows, которая содержит контейнер пользовательского элемента управления в качестве пользовательского элемента управления. Ради этого вопроса этот пользовательский контейнер управления называется Dashboard. Этот контейнер под названием Dashboard содержит множество других элементов управления в зависимости от их разрешений. Мне нужно вызвать события, содержащиеся в этих элементах управления, через элемент управления Dashboard и через форму Windows.

Как я могу поднять событие? Я использую VB.NET для этого проекта, но могу конвертировать C# в VB.NET.

Кроме того, чтобы усложнить ситуацию, основная форма Windows Form является проектом VB6. Итак, для этого я использую InteropFormsToolkit.


person Jason N. Gaylord    schedule 11.07.2011    source источник


Ответы (1)


Я понял. Я просто сделал то, что сказал, что хотел сделать, и создал событие с пользовательским классом eventargs и передал его в приложение VB6. Каждый элемент управления должен реализовать пользовательское событие, например:

Public Event OnMyCustomEvent(source As Object, e As MyCustomEventArgs)

И продолжайте поднимать это событие до VB6. В VB6 это событие было представлено как функция, которую я мог обрабатывать по мере необходимости.

person Jason N. Gaylord    schedule 12.07.2011
comment
Это хороший ответ, действительный во всем мире, однако я нашел несколько случаев, которые не работают (например, те, которые определены как частные). В таких ситуациях я бы рекомендовал метод отражения, который я объяснил здесь: stackoverflow.com/a/50087571/2396732 - person JCM; 29.04.2018