powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как вызвать следующее событие?
5 сообщений из 5, страница 1 из 1
Как вызвать следующее событие?
    #39766861
Mixon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть ЮзерКонтрол с компонентами и у одного из в контейнере я подвязываю событие, как из ЮзерКонтрола вызвать внешнее событие, если оно конечно есть?
...
Рейтинг: 0 / 0
Как вызвать следующее событие?
    #39766921
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MixonДобрый день!
Есть ЮзерКонтрол с компонентами и у одного из в контейнере я подвязываю событие, как из ЮзерКонтрола вызвать внешнее событие, если оно конечно есть?
объявить делегат или воспользоваться существующими
объявить событие в класс UserControl'а
подписаться из вне на это событие, например, в форме
вызвать событие через EventName?.Invoke() в UserControl
обрабатывать это событие, в форме.
...
Рейтинг: 0 / 0
Как вызвать следующее событие?
    #39766997
Mixon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так и сделал, но думал может есть еще варианты :)

Спасибо за ответ!
Roman MejtesMixonДобрый день!
Есть ЮзерКонтрол с компонентами и у одного из в контейнере я подвязываю событие, как из ЮзерКонтрола вызвать внешнее событие, если оно конечно есть?
объявить делегат или воспользоваться существующими
объявить событие в класс UserControl'а
подписаться из вне на это событие, например, в форме
вызвать событие через EventName?.Invoke() в UserControl
обрабатывать это событие, в форме.
...
Рейтинг: 0 / 0
Как вызвать следующее событие?
    #39767161
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вариант №2
UserControl находит объект формы рекурсивно, через Parent, приводит её к необходимому типу, вызываем public метод в этой форме.
такой вариант, плохой, потому, что:
a) UserControl должен знать точный интерфейс или тип формы в которой реализуется вызываемый метод
b) Такое поведение не очевидно
c) Метод который вы вызываете, должен быть закрытым членом, так как представляет из себя внутреннюю реализацию формы, а этот неправильный вариант требует сделать его с модификатором public или internal, что нарушает принципы инкапсуляции

Вариант №3
Передавайте в UserControl делегат и вызывайте его, но такой вариант мало чем отличается от варианта с событием

можно еще придумать кучу идиотских вариантов, только зачем?
в WF повсеместно используются события, делайте как все.
...
Рейтинг: 0 / 0
Как вызвать следующее событие?
    #39767280
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы какой-то костыль из гамна и палок пытаетесь сделать. Событие, по своей сути, не предназначено для того, чтобы его райзить извне. По-православному надо добавить в контейнер метод, который райзит событие, и из контрола этот метод вызывать.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как вызвать следующее событие?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]