Практическое руководство. Соединение методов обработчика событий с событиями
Обновлен: Ноябрь 2007
Чтобы использовать события, определенные в другом классе, необходимо определить и зарегистрировать обработчика событий. Обработчик событий должен иметь такую же подпись метода как и делегат, объявленный для события. Зарегистрировать обработчик событий можно путем добавления обработчика к событию. После добавления обработчика к событию, метод вызывается всякий раз, когда класс вызывает это событие.
Полный пример, иллюстрирующий вызов и обработку событий, содержится в разделе Практическое руководство: вызов и прием событий
Чтобы добавить метод обработчика событий для события
Определите метод с той же подписью, что и у делегата события.
public class WakeMeUp { // AlarmRang has the same signature as AlarmEventHandler. public void AlarmRang(object sender, AlarmEventArgs e) {...}; ... }
Public Class WakeMeUp ' AlarmRang has the same signature as AlarmEventHandler. Public Sub AlarmRang(sender As Object, e As AlarmEventArgs) ... End Sub ... End Class
Создайте экземпляр делегата с помощью ссылки на метод обработчика событий. Когда вызывается экземпляр делегата, то он, в свою очередь, вызывает метод обработчика событий.
// Create an instance of WakeMeUp. WakeMeUp w = new WakeMeUp(); // Instantiate the event delegate. AlarmEventHandler alhandler = new AlarmEventHandler(w.AlarmRang);
' Create an instance of WakeMeUp. Dim w As New WakeMeUp() ' Instantiate the event delegate. Dim alhandler As AlarmEventHandler = AddressOf w.AlarmRang
Добавьте экземпляр делегата к событию. При инициации события вызывается экземпляр делегата и соответствующий ему метод обработчика событий.
// Instantiate the event source. AlarmClock clock = new AlarmClock(); // Add the delegate instance to the event. clock.Alarm += alhandler;
' Instantiate the event source. Dim clock As New AlarmClock() ' Add the delegate to the event. AddHandler clock.Alarm, AddressOf w.AlarmRang
См. также
Задачи
Практическое руководство. Вызов и прием событий