finding the Delegate Method registered to an Event-Collection of common programming errors

A .Net event is simply a pair of methods named add_Whatever and remove_Whatever. They are not guaranteed to be backed by field.

When you write event EventHandler Whatever; in C#, it will automatically generate a private field with the same name as the event, and add and remove accessors that set the field.

You can inspect these at runtime by using Reflection to get the value of the private field, then callings the public GetInvocationList method of the Delegate class (without reflection).

For non-simple events, including all WinForms events, this approach will not work.