Убрать обработчики события

Compositor
Дата: 29.12.2009 16:43:17
Есть кнопка. Как убрать обработчик её клика.

bt.Click -= new EventHandler(bt_Click);

не катит. Т.к. у меня нет доступа к bt_Click.
vagner
Дата: 29.12.2009 16:50:20
А доступ к кнопке есть? Убить кнопку. А зачем нужна без клика?
Compositor
Дата: 29.12.2009 17:03:25
доступ есть. Убивать жалко. Может рефлексией как-то можно до обработчика добраться, чтобы его снять?
Compositor
Дата: 29.12.2009 17:04:08
Или мне надо переопределить клик у существующей кнопки.
gds
Дата: 29.12.2009 17:08:10
Compositor,

переопределите метод OnClick()
// из рефлектора
//

[EditorBrowsable(EditorBrowsableState.Advanced)]
protected virtual void OnClick(EventArgs e)
{
    EventHandler handler = (EventHandler) base.Events[EventClick];
    if (handler != null)
    {
        handler(this, e);
    }
}
Compositor
Дата: 29.12.2009 17:12:45
Пожалуй просто убью, по совету Вагнера.
Всем спасибо.
vladgrig
Дата: 29.12.2009 17:20:14
+ off
автор
Пожалуй просто убью, по совету Вагнера.
Всем спасибо.

прям вырезка из детективного романа...!!!
спс за хорошее настроение в конце рабочего дня! ;)))
Compositor
Дата: 29.12.2009 17:24:44
vladgrig,

спасибо и тебе. Появляйся по чаще. А то в последние пару лет тебя не видно.
sqI
Дата: 29.12.2009 17:25:38
задизейблить кнопку ?
Compositor
Дата: 29.12.2009 17:29:18
sqI,

да нет. Надо было переопределить кнопку одного диалога.

Странно что у контролов нету что-то типа отцепить все делегаты события.