События реализуются с использованием делегатов. Тем не менее, по соглашению события принимают форму:
void EventHandler(Object sender, EventArgs args);
EventHandler на самом деле является делегатом, определенным в .Net. EventArgs - это класс в .Net, который выполняет роль заполнителя для передачи дополнительной информации. Если у вас есть дополнительная информация, вы создадите класс, который получен из EventArgs и содержит свойства для дополнительных данных; поэтому вы бы создали свой собственный делегат так:
void MyEventHandler(Object sender, MyEventArgs args);
У Microsoft есть учебник по событиям здесь , а также описывается определение и повышение событий здесь