Im, пишу приложение в winForm, похожее на плитку Windows 8. Плиты меняют свои позиции, когда меняю размер формы. Моя проблема в том, что у меня есть много обработчиков событий для конкретной панели . & Я не могу удалить их. Это что-то вроде этого:удалите все EventHandlers определенного элемента управления
panel1.Resize += resizeHandle_1;
panel1.Resize += resizeHandle_2;
panel1.Resize += resizeHandle_3;
panel1.Click += clickHandle_1;
panel1.Click += clickHandle_2;
panel1.Click += clickHandle_3;
Когда я выбрасывайте ПАНЕЛЬ1 & я создать новую ПАНЕЛЬ1, существуют предыдущие события !!! & они вызывают !!!
Как удалить предыдущие события, когда я создаю новую панель1 &, где бы я ни захотел в форме1 ??
Я пробовал panel1.Click -= clickHandle_1
, но он не работает везде, где в коде. например, другим способом.
Это код запах. Вы могли бы просто написать * one * обработчик событий, который выполняет работу для всех трех. Или просто выведите класс из Panel, который переопределяет методы OnResize и OnClick. Также не ясно, почему вы хотите их удалить, переменную bool можно проверить в обработчике событий, чтобы пропустить все, что он делает. Попытайтесь опубликовать значащий код вместо этого. –
Согласовано. Я бы рассмотрел применение вариации шаблона стратегии здесь. http://www.oodesign.com/strategy-pattern.html – dcastro
Я нашел решение. –