| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Дочерние формы в MDI-приложении |
| Автор: VladCSharp 27.10.2005, 07:25 |
| как проконтролировать и недопустить повторного запуска такого же окна, а еще лучше активизировать его? |
| Автор: mr.DUDA 27.10.2005, 09:06 |
| Завести в родительской форме переменную с типом ChildForm. При добавлении дочерней MDI-формы, проверять переменную, и если не null - то не создавать новую форму, а активировать существующую. При закрытии дочерней MDI-формы сбрасывать переменную в null. |
| Автор: nikf 27.10.2005, 09:44 | ||
Непонятно тогда зачем создавать MDI проект если там будет всего одна форма - есть проект SDI
|
| Автор: arilou 27.10.2005, 15:18 | ||||
| VladCSharp Если ты имел ввиду "как проконтролировать и недопустить повторного запуска child-формы, если одна такая форма уже открыта", то: Добавь такой метод в класс MDI формы.
юзаешь так
|
| Автор: VladCSharp 28.10.2005, 04:36 |
| всем большое спасибо, все получилось, все работает |
| Автор: mal 30.5.2007, 08:15 |
| Можно по подробней как можно проконтролировать и не допустить повторного запуска child-формы |
| Автор: arilou 30.5.2007, 17:09 | ||
Пример парой постов выше. |
| Автор: mal 31.5.2007, 09:34 |
| Приведенный код только проверяет открыта ли child-форма. Я бы хотел создать процедуру, в которую передаем тип формы, а она уже либо открывает новую, либо активирует открытую. |
| Автор: SpaceSpace 31.5.2007, 10:44 | ||
|
| Автор: mal 31.5.2007, 12:36 |
| Спасибо за помощь. На сколько я понял из кода, не получилось создать универсальную процедуру для вызова новой child-формы или активации открытой. В моём проекте предполагается у основной формы порядка 20 дочерних. |
| Автор: arilou 31.5.2007, 12:55 |
| mal, помоему решение как раз универсальное. |
| Автор: mal 31.5.2007, 14:30 |
| arilou, Ваше решение - универсальное, но оно может только определить открыта ли child-форма. А я бы хотел открыть или активировать child-форму. Не универсальное - это я на счет решения SpaceSpace Или я чего-то не до понимаю? |
| Автор: stab 31.5.2007, 14:42 |
в чём же проявляется его не универсальность? как по мне, так там единственное чего не хватает так это вызова Form.Activate, в случае того, если форма уже существует, и то, может быть, вполне и без него можно обойтись. |
| Автор: mal 31.5.2007, 15:07 | ||||
Что за Form2? Как быть если у меня 20 child-форм? |
| Автор: Exception 31.5.2007, 17:39 |
| http://forum.vingrad.ru/sources/act-ST/f-201/t-154181/unread-1.html (только что написал). |
| Автор: stab 31.5.2007, 23:26 | ||
не думал, что тебя это напугает. можно сделать так:
|
| Автор: Exception 2.6.2007, 19:41 |
| ИМХО, мой способ лучше, т.к. он типизированный и поддерживает создание формы по требованию и последующее хранение в кэше. |