| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Закрытие Mdi приложения |
| Автор: vlsaf 27.10.2007, 21:01 |
| Если я закрываю главное окно Mdi приложения, то дочерние окна сами закрываются и разрушаются. Но мне надо самому позакрывать все дочерние окна, чтобы грамотно их закрыть. Примерно вот так: int i = 0 foreach (Form childForm in MdiChildren) { i++; childForm.Close(i); } (тут значение i для более легкого понимания, на самом все чуть сложнее) Но где мне этот код вставить. Я не могу поймать момент между тем, как я клацнул на крестик закрытия главной формы и началом закрытия дочерних форм. События главной формы FormClosing наступает уже после закрытия всех дочерних окон. Надоумте, что сделать? |
| Автор: CYBERDREAM 28.10.2007, 11:02 | ||
Приветствую. Может такой вариант будет приемлем. Всех потомков подписать на событие:
Надо будет повозится с тем когда их подписывать на это событие. Как вариант при добавлении Children'a |
| Автор: vlsaf 28.10.2007, 11:14 |
| Да. Это вариант. И мне кажется, единственно приемлемый в моем случае. Спасибо! |
| Автор: CYBERDREAM 28.10.2007, 11:18 |
| Пожалуйста. Заходи еще |
| Автор: vlsaf 28.10.2007, 17:46 | ||
| А... Э... Гм... Кхе-кхе Что-то я порадовался раньше времени. Ты предлагаешь всех потомков подписать на какое событие? На собственное событие FormClosing? Но они все и так подписаны на собственное событие закрытие окна. А что дальше. Если я в потомке, в событии FormClosing запущу мой цикл
То получится так, что если я закрою сам одино из открытых окон, то позакрываются и все остальные окна Mdi приложения. А это неприемлемо. Или я что-то недопонял? |
| Автор: vlsaf 28.10.2007, 19:06 |
| Усё. Проблема решена. 1. В главном окне я нажимаю кнопку закрытия окна. 1.1 Вызываются для каждого дочернего окна FormClosing (!!! при этом дочерние окна не разрушаются !!!) 2. Вызывается FormClosing для главного окна (вот тут то я и ловлю это дело и творю с дочерними окнами все, что душе угодно) что-то я глубоко тормознул и сразу до этого не допер. 3. Идет разрушение главного и дочерних окон. Для меня уже не важно, в какой последовательности Но, все равно, всем спасибо за участие. Без вас, никуда |
| Автор: CYBERDREAM 29.10.2007, 09:59 |
| А от нас никуда и не денешься |
| Автор: Yellow_Submarine 26.11.2008, 22:38 | ||||
hi *. Случайно вышел на этот топик по поиску. А проблема похожая. Но вот вопрос, как отловить добавление нового Child в MDIChildren, если непосредственно не править метод, в котором он добавляется? То есть в стороннем классе имеется только ссылка на главную форму. И вот из нее бы как-нибудь вытащить событие, которое возбуждается при добавлении Child. Но как? Такого события вроде как нет. Может есть какие-нибудь идеи? Интересно вообще, через год после последнего поста сюда заглянет кто-нибудь..) |