C# supports some inherited covariance for event delegates, so a method like this:
void LowestCommonHander( object sender, EventArgs e ) { ... } Can be used to subscribe to your event, no explicit cast required
gcInt.MyEvent += LowestCommonHander; You can even use Linqlambda syntax and the intellisense will all be done for you:
gcInt.MyEvent += (sender, e) => { e. //you'll get correct intellisense here };