Проверьте, имеет ли управление события по щелчку EventHandler

Я хочу знать, присвоили ли управлению метод на событии Click.

Button b = new Button();
b.Click += (sender, e) => { };

/* What I want */
b.Click.Count // 1

Мне нужно что-то, что может, по крайней мере, сказать мне, если управление имеет или не некоторый метод на событии щелчка.

5
задан BrunoLM 9 July 2010 в 12:53
поделиться

4 ответа

Вы можете немного почитать эту тему Определить список обработчиков событий, привязанных к event, похоже, что она может быть несколько связана с тем, что вы пытаетесь сделать.

3
ответ дан 13 December 2019 в 22:01
поделиться

. Это можно сделать только из класса, которому принадлежит обработчик событий ( Кнопка в этом кейс). В классе Button вы можете протестировать Click! = Null , чтобы узнать, были ли подписчики. К сожалению, поскольку я подозреваю, что кнопка Button является классом фреймворка, вам не повезло.

0
ответ дан 13 December 2019 в 22:01
поделиться

Вы не можете этого сделать. Event - это просто добавление/удаление методов для добавления делегата в цепочку. Только класс, у которого есть событие, может знать, есть ли подписчики на это событие.

Более того, вам не нужно знать, есть ли подписчики на событие элемента управления. Зачем вам нужна эта информация?

1
ответ дан 13 December 2019 в 22:01
поделиться

Если вам нужно проверить, существует ли делегат / подписан ли он, вы можете сначала попробовать - =, в catch run + =

0
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: