Обыскав многие текущие статьи здесь по этому вопросу и попробовав много кода и его вариантов, я все еще не могу достичь того, чего хочу.
В C # я хочу передатьWinforms управляют методом и возвращают список всех обработчиков событий любого типа, на который подписан элемент управления.Подход с перегрузкой просто возвращает true / false, если элемент управления подписан на определенное событие.
Например:
Button btn = new Button() ;
private void evt(object sender, EventArgs e) {}
private void mevt(object sender, MouseEventArgs e) {}
private List<string> GetSubscribedEventList<T>(T item) {}
private bool CheckEventSubscribed <T>(T item, string evtName) {}
In Main:
btn.Click += new EventHandler(evt) ;
btn.MouseUp += new MouseEventHandler(mevt) ;
List<string> events = GetSubscribedEventList(btn) ;
bool HasClickEvent = CheckEventSubscribed (btn,"CLICK") ;
Метод list возвращает список элементов, которые являются событиемимена всех подписанных событий, по одному событию на элемент в списке.
Очевидно, что форма возвращаемой информации может отличаться от списка строк, если какая-то другая форма более гибкая.
Нечто подобное мне нужно.Я попытался сгенерировать EventHandlerList и использовать ключи и GetInvocationList, но, очевидно, я делаю это неправильно.
Очень благодарен за помощь.Спасибо!