|
Как вызвать следующее событие?
|
|||
---|---|---|---|
#18+
Добрый день! Есть ЮзерКонтрол с компонентами и у одного из в контейнере я подвязываю событие, как из ЮзерКонтрола вызвать внешнее событие, если оно конечно есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 09:41 |
|
Как вызвать следующее событие?
|
|||
---|---|---|---|
#18+
MixonДобрый день! Есть ЮзерКонтрол с компонентами и у одного из в контейнере я подвязываю событие, как из ЮзерКонтрола вызвать внешнее событие, если оно конечно есть? объявить делегат или воспользоваться существующими объявить событие в класс UserControl'а подписаться из вне на это событие, например, в форме вызвать событие через EventName?.Invoke() в UserControl обрабатывать это событие, в форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 11:29 |
|
Как вызвать следующее событие?
|
|||
---|---|---|---|
#18+
Так и сделал, но думал может есть еще варианты :) Спасибо за ответ! Roman MejtesMixonДобрый день! Есть ЮзерКонтрол с компонентами и у одного из в контейнере я подвязываю событие, как из ЮзерКонтрола вызвать внешнее событие, если оно конечно есть? объявить делегат или воспользоваться существующими объявить событие в класс UserControl'а подписаться из вне на это событие, например, в форме вызвать событие через EventName?.Invoke() в UserControl обрабатывать это событие, в форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 13:16 |
|
Как вызвать следующее событие?
|
|||
---|---|---|---|
#18+
вариант №2 UserControl находит объект формы рекурсивно, через Parent, приводит её к необходимому типу, вызываем public метод в этой форме. такой вариант, плохой, потому, что: a) UserControl должен знать точный интерфейс или тип формы в которой реализуется вызываемый метод b) Такое поведение не очевидно c) Метод который вы вызываете, должен быть закрытым членом, так как представляет из себя внутреннюю реализацию формы, а этот неправильный вариант требует сделать его с модификатором public или internal, что нарушает принципы инкапсуляции Вариант №3 Передавайте в UserControl делегат и вызывайте его, но такой вариант мало чем отличается от варианта с событием можно еще придумать кучу идиотских вариантов, только зачем? в WF повсеместно используются события, делайте как все. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 16:01 |
|
Как вызвать следующее событие?
|
|||
---|---|---|---|
#18+
Вы какой-то костыль из гамна и палок пытаетесь сделать. Событие, по своей сути, не предназначено для того, чтобы его райзить извне. По-православному надо добавить в контейнер метод, который райзит событие, и из контрола этот метод вызывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 19:07 |
|
|
start [/forum/topic.php?fid=20&msg=39766861&tid=1399095]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
134ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 229ms |
0 / 0 |