Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 1
Регистрация: 26.03.2013
Сообщений: 66
1

Где и как выполняется подписка на событие в конструкторе класса

31.03.2013, 13:04. Показов 3738. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
где и как выполняется подписка на событие в конструкторе класса, например, на KeyUp, MouseMove и т. п. И как конкретно организовать такое событие?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2013, 13:04
Ответы с готовыми решениями:

Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
Ну то есть так: есть родительский и дочерний класс, в родительском определен виртуальная функция и...

Инициализация шаблонного класса(В конструкторе класса после двоеточия вновь имя класса)
Всем доброго времени суток! Пытаюсь разобраться как работает приведенный мной код. Конкретно,...

Подписка на событие
День добрый. Стоит задача создать подписку на событие для 2х справочников- должности и должности...

Подписка на событие
Дорогие форумчане, крик души! Помогите пожалуйста новичку с созданием подписки! Ситуация такова:...

5
18 / 15 / 8
Регистрация: 24.02.2013
Сообщений: 47
31.03.2013, 13:29 2
Если имеется в виду форма, то в конструкторе формы есть вызов метода InitializeComponent(), который вынесен в отдельный файл, там все и делается для формы - создаются компоненты, задаются свойства и там же происходит подписка на события, выглядят следующим образом:
C#
1
this.button1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button1_MouseUp);
Здесь к делегату события пришивается метод, указанный в скобках.
Этот код создается дизайнером автоматически, поэтому ничего трогать нельзя.
Если хочется самому добавить событие, писать их надо уже отдельно после InitializeComponent()

Добавлено через 8 минут
Еще у метода, который вписываете при подписке, должны быть два аргумента
C#
1
(object s,EventArgs e)
s - объект, который послал событие
e - данные, связанные с событием. Например можно узнать, какая кнопка мыши нажата
C#
1
if (e.Button==MouseButtons.Left) MessageBox.Show("вы нажали ЛКМ")
в этом случае e будет класса MouseEventArgs, могут быть и другие классы, наследники EventArgs в зависимости от типа события и передаваемых с ним данных.
0
Эксперт .NET
1696 / 1325 / 316
Регистрация: 15.06.2012
Сообщений: 5,045
Записей в блоге: 3
31.03.2013, 13:44 3
В общем верно, но немного поправлю.

Цитата Сообщение от Koropet Посмотреть сообщение
Этот код создается дизайнером автоматически, поэтому ничего трогать нельзя.
Это же почему? Можно спокойно химичить там, в рамках дозволенного.

Цитата Сообщение от Koropet Посмотреть сообщение
Если хочется самому добавить событие, писать их надо уже отдельно после InitializeComponent()
Не обязательно после Initialize. Можно всунуть в любом месте программы, главное чтобы твой объект уже существовал на данном этапе. Я, например, засовывал в конструктор класса (бред, конечно, но тогда это было быстрое и практичное решение).

Цитата Сообщение от Koropet Посмотреть сообщение
this.button1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button1_MouseUp);
Можно просто
C#
1
this.button1.MouseUp += this.button1_MouseUp;
Так, как this.button1_MouseUp - делегат нужного типа. Но это уже мелочи.
0
18 / 15 / 8
Регистрация: 24.02.2013
Сообщений: 47
31.03.2013, 14:06 4
Цитата Сообщение от Wolfdp Посмотреть сообщение
Это же почему
Начинающему лучше не лезть туда, только если посмотреть как все работает. Если что-то не так ковырнуть, то дизайнер пошлет далеко, сам пару раз попадался
0
Wolfdp
31.03.2013, 15:37
  #5

Не по теме:

Koropet, "не лезь, а то убьет!" XD

0
0 / 0 / 1
Регистрация: 26.03.2013
Сообщений: 66
31.03.2013, 18:13  [ТС] 6
Всем большое спасибо
0
31.03.2013, 18:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2013, 18:13
Помогаю со студенческими работами здесь

Подписка на событие
Как в подписке на событие проверить что в определенном справочнике один из реквизитов был изменен....

Подписка На Событие
Здравствуйте. Может кто сталкивался с таким вопросом: документ стоит на поддержке, а мне нужно...

Подписка на событие
Всем доброго времени суток! Знакомлюсь с подпиской на события... И первый вопрос возник -...

Подписка на событие в потоке
Итак, есть поток. В нем создается объект WebBrowser, ему выдается адрес, по которому он должен...


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

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