Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну / 10 сообщений из 10, страница 1 из 1
22.02.2007, 18:08
    #34351013
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Суть проблемы вот в чем.
Есть риложение, основное окно с меню.
Из этого основного окна по выбору пункта меню "Open..." открывается обычное окно (не модальное!).
По выбору пункта меню "Exit" основного окна оно закрывается. При этом закрывается также и открытое ранее обычное окно.
А через некоторое время выскакивает системное сообщение типа "<Application name> has encountered errors and needs to be closed".
Если же перед выходом из приложения обычное окно закрыть, ошибки не возникает.
При закрытии обычного окна отрабатывает его событие unload. При закрытии основного окна, при оставленном открытым обычном, это событие не отрабатывает.
Вопрос - как запустить событие Unload для обычного окна из кода основного?
...
Рейтинг: 0 / 0
22.02.2007, 19:05
    #34351145
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Код: plaintext
unload Form1
...
Рейтинг: 0 / 0
23.02.2007, 12:22
    #34351789
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Nickz
Как закрыть форму, я знаю - вопрос в том, как до нее добраться.
Если я использую коллекцию Forms в соде основной формы, я получаю из нее только эту основную форму. Обычная же открытая форма не видна.
И наоборот, если я использую эту коллекцию в коде обычной формы - основная форма в ней отсутствует.

Буду рад, уважаемые гуру, если кто объяснит этот парадокс ;)
...
Рейтинг: 0 / 0
23.02.2007, 16:34
    #34352139
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Мы говорим о MDI ?


Magnus
...
Рейтинг: 0 / 0
23.02.2007, 23:39
    #34352485
Проходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
а я вот что-то ничего не понял из постановки вопроса. :-(
...
Рейтинг: 0 / 0
24.02.2007, 04:16
    #34352578
blinow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Весь парадокс у тебя в программе.
Очень мало инфы.
Главная, MDI, что-ли.
Если нет, то другие формы сами при закрытии первой не закроются.
Тебе надо Unload в тех формах, там какие-то действия выполняешь со ссылкой на другие формы, так разберись.
И что за бред с коллекцией Forms, с чего ты взял, что ничего там не видишь
...
Рейтинг: 0 / 0
28.02.2007, 11:55
    #34360071
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
blinow
Конечно, мы говорим об MDI.
При закрытии главной формы, конечно же закрывается и обычная, но не выгружается приложение, т.к. событите unload для обычной формы при этом не выполняется.
Вот я и хочу выгрузить эту форму в коде выгрузки основной. Однако из этого кода она не доступна (в коллекции forms содержится только главная форма, frmMain). Может границы видимости forms лежат в пределах одной dll (главная и обычная формы находятся в разных dll)?
...
Рейтинг: 0 / 0
28.02.2007, 13:31
    #34360485
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Абросов Юрий...главная и обычная формы находятся в разных dll...
так вот с этого собственно и надо было начинать
код в студию (c)
...
Рейтинг: 0 / 0
28.02.2007, 16:19
    #34361183
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Nikz
Да тут кода-то всего ничего.
Скажем так, вот фрагмент одного класса из Lib1.dll:

. . . . . . . . . . . . . . . . . . . . . . . . .

Case ID_FILE_EXIT ' close application
<здесь предполагается получить доступ к открытой форме frm2 из библиотеки Lib2.dll с помощью коллекции Forms>
Unload frm2

Unload frmMain
Exit Sub

. . . . . . . . . . . . . . . . . . . . . . . . .

frmMain входит в состав библиотеки Lib1.dll.

Связь между библиотеками следующая: Lib1 ссылается на Lib2 (Lib2 стоит в референсах Lib1).
...
Рейтинг: 0 / 0
28.02.2007, 19:01
    #34361703
Nikz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
не, имелось в виду код загрузки формы lib2 из lib1.
через forms действительно не получится обратиться к этой форме,
но
пришел в голову такой вариант:
сделать в lib2.dll функцию такого вида
Код: plaintext
1.
2.
3.
public sub TerminateFrm2()
   unload frm2
end sub
и запускать ее из Lib1.dll
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Case ID_FILE_EXIT ' close application
<здесь предполагается получить доступ к открытой форме frm2 из библиотеки Lib2.dll с помощью коллекции Forms>
'Unload frm2
TerminateFrm2

Unload frmMain
Exit Sub
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]