Возможный дубликат: Как можно удалить все обработчики событий события Click кнопки?
Я хочу удалить все обработчики событий кликов с одной кнопки. Я нашел этот метод в вопросе Как удалить все обработчики событий из элемента управления.
private void RemoveClickEvent(Button b)
{
FieldInfo f1 = typeof(Control).GetField("EventClick",
BindingFlags.Static |
BindingFlags.NonPublic);
object obj = f1.GetValue(b);
PropertyInfo pi = b.GetType().GetProperty("Events",
BindingFlags.NonPublic |
BindingFlags.Instance);
EventHandlerList list = (EventHandlerList)pi.GetValue(b, null);
list.RemoveHandler(obj, list[obj]);
}
Но эта строка всегда возвращает null:
typeof(Control).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
И этот метод был написан в 2006 году.
Есть ли последняя версия этого метода?