Just remember the following:
-
An event must be of a delegate type
-
A delegate may require custom event arguments of a programmer-defined type
So we see three things to consider when building events: (i) the declaration of the event; (ii) the declaration of the delegate on which the event depends; (iii) the definition of any event arguments specified in the delegate declaration.
For more on this, see "Events In C#" by Sanju:
http://www.csharphelp.com/archives/archive253.html