![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| Zmeevic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 20.6.2007 Репутация: нет Всего: нет |
Что-то туплю, работаю не на своем компе, и глянуть негде, вопрос такой :
Есть Form1 (контенер), у нее есть две дочерние формы Form2, Form3 на Form3 находится UserControlA, у которого есть EventB, как подписаться на этот EventB в Form1, если Form3 вызывается от Form2. Т.е. Form1(основная) -> вызов Form2 -> вызов Form3(событие на которое нужно подписаться в Form1)? {С#} За ранее спасибо, ибо память у меня куриная… |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
Что-то ты такого накрутил! Непонятно...
Что значит "вызов"? создание через new? Или они создаются вместе (я имею в виду Form2, Form3), просто form2.Show() вызывается в коде form1, а form3.Show() - в коде form2? Одним словом, предполагаю самый "запущенный" вариант и советую:
можно делегат и не передавать в конструкторе, сделать через свойства передачу обработчика попозже. Ну, это надо смотреть по ситуации... -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Zmeevic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 20.6.2007 Репутация: нет Всего: нет |
Упростил, есть главная форма Form1, при загрузке сделали и показали Form2, на ней кнопка - нажали-> сделали и показали Form3, на ней также кнопка - нажали-> отловили это событие в Form1 (Вывели сообщение)
Вот переделал под приведеный выше пример, но где-то ошибся компилятор ругается в конструкторах Form2 и Form3 хотя, как мне кажется, принцип понял надо протягивать по цепочке переменую, т.е. а как быть если форм больше, к примеру их 10, причем каждая создаётся одна из другой, а на 10-й просходит некоторой событие, которое необходимо отловить в 1-й Форме? Мигрирую с дельфей... FAQ, смотрел, но когда формы две - то никаких проблем на подписку о событии, а вот когда их больше... |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
Можно и не протягивать...
а потом, сколько бы ни было дочерних форм. когда бы они не появлялись, они всегда смогут сами создать этот делегат и подвязать к событию своего контрола. Правда, поскольку у дочерней формы F2.MdiParent = this; устанавливается после выхода из конструктора, предлагаю сделать через свойство работу с делегатом
Это сообщение отредактировал(а) tol05 - 22.6.2007, 10:09 -------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| Zmeevic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 20.6.2007 Репутация: нет Всего: нет |
В полне возможно что где-то я туплю, но:
tol05, если не затруднит, можешь дать пример, простой : две формы, одна основная у нее дочерняя, на дочерней нажали на кнопку -> обработали это событие в основной, без протягивания, т.к. форм больше… |
|||
|
||||
| tol05 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 11 Всего: 170 |
обработку клика я сделал и в дочерней форме, для наглядности
-------------------- На хорошей работе и сны хорошие снятся. |
||||
|
|||||
| Zmeevic |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 20.6.2007 Репутация: нет Всего: нет |
Огромное, человеческое СПАСИБО!!!
а то я бы долго: а теперь Добавлено через 2 минуты и 9 секунд Вопрос решен. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |