Как закрыть все подчиненные окна?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Perf2k2
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 07.02.2005 (Пн) 12:10

Как закрыть все подчиненные окна?

Сообщение Perf2k2 » 28.09.2005 (Ср) 11:23

Всем привет.
Есть форма MDI. В ней открыто несколько чайлдов, надо их прикрыть. А также, по возможности, и другие окна, которые модальные. Как сделать?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Re: Как закрыть все подчиненные окна?

Сообщение lord0n » 28.09.2005 (Ср) 11:51

Perf2k2 писал(а):Всем привет.
Есть форма MDI. В ней открыто несколько чайлдов, надо их прикрыть. А также, по возможности, и другие окна, которые модальные. Как сделать?


unload form1
RTFM
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Perf2k2
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 07.02.2005 (Пн) 12:10

Сообщение Perf2k2 » 28.09.2005 (Ср) 11:58

unload form1
RTFM

Ну и откуда же я знаю сколько у меня там этих окон открыто? И как какое называется? Что-то ты не то сказал :roll:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.09.2005 (Ср) 12:02

коллекция Forms() содержит все открытые формы

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 28.09.2005 (Ср) 12:06

Perf2k2 писал(а):
unload form1
RTFM

Ну и откуда же я знаю сколько у меня там этих окон открыто? И как какое называется? Что-то ты не то сказал :roll:


погоди, ты пишешь прогу и незнаешь как у тя окна называются? :shock:
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 12:10

lord0n писал(а):погоди, ты пишешь прогу и незнаешь как у тя окна называются? :shock:

А для тебя новость, что одна форма может быть открыто несколько раз (иметь несколько инстансов)?
Lasciate ogni speranza, voi ch'entrate.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 28.09.2005 (Ср) 12:13

alibek писал(а):
lord0n писал(а):погоди, ты пишешь прогу и незнаешь как у тя окна называются? :shock:

А для тебя новость, что одна форма может быть открыто несколько раз (иметь несколько инстансов)?


нет не новость, просто когда я пишу проги, я точно знаю какие у меня есть формы и с какими названиями
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 12:26

Dim frm As Form1
Set frm = New Form1
Load frm
frm.Show
Set frm = New Form1
Load frm
frm.Show
Set frm = Nothing


Как ты закроешь эти два окна?
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 28.09.2005 (Ср) 12:39

ученье - свет, а неученье - свет во тьме
:lol:

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 28.09.2005 (Ср) 13:10

alibek писал(а):Dim frm As Form1
Set frm = New Form1
Load frm
frm.Show
Set frm = New Form1
Load frm
frm.Show
Set frm = Nothing


Как ты закроешь эти два окна?


end`ом :)
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 13:17

А если там сабклассинг?
Lasciate ogni speranza, voi ch'entrate.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 28.09.2005 (Ср) 13:28

а если серьезно, то так:

Код: Выделить всё

For x = 0 To Form1.Count - 1
Unload Forms(x)
Next x
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 13:53

А знаешь, что произойдет, если при этом ни одного инстанса Form1 не было запущено? При обращении к Form1.Count она загрузится.
Lasciate ogni speranza, voi ch'entrate.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 28.09.2005 (Ср) 14:05

alibek писал(а):А знаешь, что произойдет, если при этом ни одного инстанса Form1 не было запущено? При обращении к Form1.Count она загрузится.


это понятно
мне непонятно накой запускать десять копий одной и той же формы
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Perf2k2
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 07.02.2005 (Пн) 12:10

Сообщение Perf2k2 » 28.09.2005 (Ср) 14:20

мне непонятно накой запускать десять копий одной и той же формы

Так надо. В одной отображаются дела клиента, в другой - все, в третьей - юриста и т.д. В общем пока окончательного решения нет я так понял? :)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 14:22

lord0n писал(а):мне непонятно накой запускать десять копий одной и той же формы

Запусти Word (или Excel) и создай два документа.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 14:25

Perf2k2 писал(а):В общем пока окончательного решения нет я так понял? :)

Что непонятного то? Тебе же все объяснили.
Код: Выделить всё
Private Sub MDIForm_Unload
Dim frm As Form
For Each frm In Forms
  If Not (frm Is Me) Then Unload frm
Next frm
End Sub
Lasciate ogni speranza, voi ch'entrate.

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 28.09.2005 (Ср) 14:29

alibek писал(а):
lord0n писал(а):мне непонятно накой запускать десять копий одной и той же формы

Запусти Word (или Excel) и создай два документа.


эту траблу я решил вот так:
Код: Выделить всё

.ActiveWorkbook.Close SaveChanges:=False
.Application.Quit

Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.09.2005 (Ср) 14:36

Это был ответ на то, зачем запускать несколько инстансов одной формы. Типовая задача для MDI-приложения.
Lasciate ogni speranza, voi ch'entrate.

Perf2k2
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 07.02.2005 (Пн) 12:10

Сообщение Perf2k2 » 29.09.2005 (Чт) 11:17

Что непонятного то? Тебе же все объяснили.

Угу, понял. Спасибо :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 111

    TopList