Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
18 / 18 / 14
Регистрация: 02.01.2015
Сообщений: 78
1

Вынесение обработчика события в отдельный класс

23.02.2015, 07:32. Показов 1355. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникает следующая проблема: у многих форм одно и то же событие обрабатывается одинаковым кодом, поэтому вынес обработчик в отдельный класс. Через конструктор добавлять подобное нельзя, добавил в дизайнере формы:
C#
1
this.KeyUp += new System.Windows.Forms.KeyEventHandler(class.function);
Периодически оно просто слетает. Данный код из дизайнера исчезает, событие, естественно, не обрабатывается. Возможно ли это решить, или придется в каждой форме писать один и тот же код?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2015, 07:32
Ответы с готовыми решениями:

Вынесение настроек из программы в отдельный конфигурационный файл
Добрый вечер, хочу повторить интересующий вопрос, надеюсь на вашу помощь. Есть допустим в...

Добавить класс с использованием обработчика события ng-click
Нужно, чтобы при фокусе на каком-либо поле этому полю добавлялся класс myClass. Почему-то свойство...

Нужно ли для события создавать отдельный класс?
Помогите разобраться с событиями. Читал уроки, но так и не разобрался. Как создать событие, которое...

Вынесение кода в отдельный файл.
Чтобы понять ООП, пишу маленькую игрушку-пошаговый файтинг для курсовика. Пока консольный, linux....

3
Администратор
Эксперт .NET
17689 / 13817 / 5310
Регистрация: 17.03.2014
Сообщений: 28,328
Записей в блоге: 1
23.02.2015, 07:46 2
AlexDenton, сделай класс наследник от Form - например BaseForm. В нем определи нужные методы. В конструкторе сделай подписку. Затем замени для форм в проекте базовый класс на BaseForm.
0
18 / 18 / 14
Регистрация: 02.01.2015
Сообщений: 78
23.02.2015, 09:36  [ТС] 3
OwenGlendower, то есть
C#
1
2
3
4
5
6
class BaseForm : Form
{
   public function()
   {
   }
}
Так?
0
Администратор
Эксперт .NET
17689 / 13817 / 5310
Регистрация: 17.03.2014
Сообщений: 28,328
Записей в блоге: 1
23.02.2015, 09:48 4
Лучший ответ Сообщение было отмечено AlexDenton как решение

Решение

AlexDenton, да. Единственное лучше модификатор protected использовать чтобы не светить обработчики внешнему коду. Плюс если всем формам нужен одинаковый обработчик KeyUp, то его можно сразу добавить:
C#
1
2
3
4
5
6
7
8
9
10
11
class BaseForm : Form
{
    public BaseForm()
    {
        KeyUp += HandleKeyUp;
    }
 
    protected void HandleKeyUp(object sender, KeyEventArgs e)
    {
    }
}
1
23.02.2015, 09:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2015, 09:48
Помогаю со студенческими работами здесь

Вынесение кода из страницы в отдельный файл
Имею след. код javascript в своем html документе, помогите исправить его так, что бы можно было...

Создание объекта-события и обработчика события
Допустим у меня есть следующий класс: public class Example { private boolean bool; public...

Присваивание обработчика события
Пусть кнопка создана так: Button:=TSpeedButton.Create(FormMain); Button.Parent:=FormMain;...

Функции обработчика события
Здравствуйте форумчане значит проблема у меня такая есть класс ticTacToe (ttt для быстроты )...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru