Создайте список событий с обработчиком событий, чтобы добавить обработчик в список событий или удалить его.C#

Место общения программистов C#
Ответить
Anonymous
 Создайте список событий с обработчиком событий, чтобы добавить обработчик в список событий или удалить его.

Сообщение Anonymous »

В приложении у меня довольно большой список событий и назначенных им обработчиков, например:

Код: Выделить всё

...
Resize += FormMain_Resize;
ResizeEnd += FormMain_ResizeEnd;
...
Я хочу добавить все эти элементы в список, чтобы иметь возможность перебирать их, чтобы отменить назначение (отключить), выполнить кучу работы, а затем снова выполнить итерацию по списку, чтобы переназначить обработчики событий событиям.
На сегодняшний день я не нашел никакой соответствующей информации, касающейся создания фактического списка и назначенных им обработчиков событий. Разве мне не следует этого делать?
Я создал класс следующим образом:

Код: Выделить всё

public class EventWHandler
{
public EventWHandler(EventHandler e, EventHandler m)
{
EventItem = e;
Method = m;
}

public EventHandler EventItem { get; private set; }
public EventHandler Method { get; private set; }

public void Listen()
{
EventItem += Method;
}

public void UnListen()
{
EventItem -= Method;
}
}
Идея создания списка вышеуказанного класса с помощью:

Код: Выделить всё

list.Add(new EventWHandler(Resize, FormMain_Resize));
Однако это не будет работать без некоторой настройки — так как я не смог создать ссылку на объект на событие (и использовал EventHandler для демонстрации)
Есть ли лучший способ перебирать указанный список событий и их обработчиков?
(Примечание: я не хочу перебирать ВСЕ события или ВСЕ обработчики событий — только указанный list.)
(Примечание: использование .net 4.7 — ограничения проекта)

Подробнее здесь: https://stackoverflow.com/questions/752 ... dler-to-th
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»