using System.Reflection; //事件对应的键值 FieldInfo fi = typeof(Control).GetField(EventName, BindingFlags.Static | BindingFlags.NonPublic); if (fi != null) { object evtKey = fi.GetValue(ctr); //事件属性所有值 PropertyInfo pi = typeof(Control).GetProperty("Events", BindingFlags.Instance | BindingFlags.NonPublic); if (pi != null) { System.ComponentModel.EventHandlerList evts = (System.ComponentModel.EventHandlerList)pi.GetValue(ctr, null); if (evts != null) { //事件对应的委托 Delegate dlt = evts[evtKey]; evts.RemoveHandler(evtKey, dlt); } } }