Хорошо, я просто наращиваю на winforms после использования WPF в течение последних 3 лет. Мне нужно запустить событие из одной формы (при обновлении информации о клиенте), а другая форма подписаться на это событие и выполнить некоторую обработку для обновления информации о клиенте, которая отображается, если обновленный клиент соответствует клиенту в другой форма. Я только смог найти примеры этого в формах, которые являются дочерними/родительскими или от пользовательского элемента управления до родительской формы, где родительская форма имеет ссылку на дочернюю форму, которая подписывается на событие. Я не могу найти какую-либо информацию о том, как я мог бы установить это в двух формах, которые не связаны друг с другом и не имеют ссылок друг на друга. Я просто хочу запустить событие из одной формы и забрать его в другом. Похоже, это должно быть довольно легко, но мне не очень повезло. Любая помощь приветствуется! Благодаря!События в WinForms между двумя несвязанными формами
UPDATE: Вот что я имею установку до сих пор:
объекта, содержащего событие и способ поднять событие.
Public Class CustomerEvents
Public Event CustomerInformationUpdatedEvent(ByVal customerId As Integer)
Public Sub RaiseCustomerInformationUpdated(ByVal customerId As Integer)
RaiseEvent CustomerInformationUpdatedEvent(customerId)
End Sub
End Class
форма, которая поднимает событие:
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Dim customerEvents As New CustomerEvents
customerEvents.RaiseCustomerInformationUpdated(iCustomerID)
Me.Close()
End Sub
форма, которую необходимо подписаться на событие:
Private Sub myForm_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
Dim customerEvents As New CustomerEvents
AddHandler customerEvents.CustomerInformationUpdatedEvent, AddressOf HandleCustomerInformationUpdated
End Sub
Private Sub HandleCustomerInformationUpdated(ByVal customerid As Integer)
' Processing
End Sub
Но HandleCustomerInformationUpdated никогда не быть пораженным. Что я делаю не так?? Благодаря!
Использование 'As New' не может работать, вы получаете новый экземпляр класса, для которого никто еще не мог подписаться на мероприятие. –