У меня есть кнопка управления на winform. Так что, если у меня есть что-то вроде:Как узнать, назначен ли конкретный делегат событию?
myButton.Click += MyHandler1;
myButton.Click += MyHandler2;
myButton.Click += MyHandler3;
Как я могу сказать, если какой-либо конкретной MyHandler уже был добавлен замковое события, так что не добавляется еще раз где-то в моем коде?
Я читал, как вы можете использовать GetInvocationList() для информации своего собственного события. Но я получаю ошибки при попытке получить элементы для моей командной кнопки, используя различные комбинации. Он говорит,
"Событие 'System.Windows.Forms.Control.Click' может появиться только на левой стороне от + = или -. ="
Что мне не хватает?
[Изменить] - Я хотел бы подчеркнуть this question, что указал Ахмад. Это kludge и должно быть проще IMHO, но похоже, что это может сработать.
Вы не можете. Лучшее, что вы можете сделать, это «myButton.Click - = MyHandler1», прежде чем добавлять его. – slugster
Возможный дубликат [Определить список обработчиков событий, связанных с событием] (http://stackoverflow.com/questions/660480/determine-list-of-event-handlers-bound-to-event) –
@Ahmad - Хороший глаз. Я бы точно этого не видел! Однако, для ясности, я считаю, что мой вопрос все еще действителен. – IAmAN00B