It's not that it's an event, it is that it is a delegate. A delegate is a pointer to other methods. A delegate can point to an unlimited amount of methods and when you call a delegate you call all its appointed methods.
Its used so at compile time the method doesn't need yet to know which methods need to be invoked. and is assigned always via a "+=" operator.
It's also worth noting that you can use the -= operator to stop the delegate pointing to a method e.g.
Car myCar = new Car();
public void Start()
myCar.Crash += new Car.CrashEventHandler(myMethod);
private void myMethod()
public void Stop()
myCar.Crash -= new Car.CrashEventHandler(myMethod);
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...