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

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


Magnus
...
Рейтинг: 0 / 0
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
    #34352485
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я вот что-то ничего не понял из постановки вопроса. :-(
...
Рейтинг: 0 / 0
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
    #34352578
blinow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь парадокс у тебя в программе.
Очень мало инфы.
Главная, MDI, что-ли.
Если нет, то другие формы сами при закрытии первой не закроются.
Тебе надо Unload в тех формах, там какие-то действия выполняешь со ссылкой на другие формы, так разберись.
И что за бред с коллекцией Forms, с чего ты взял, что ничего там не видишь
...
Рейтинг: 0 / 0
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
    #34360071
blinow
Конечно, мы говорим об MDI.
При закрытии главной формы, конечно же закрывается и обычная, но не выгружается приложение, т.к. событите unload для обычной формы при этом не выполняется.
Вот я и хочу выгрузить эту форму в коде выгрузки основной. Однако из этого кода она не доступна (в коллекции forms содержится только главная форма, frmMain). Может границы видимости forms лежат в пределах одной dll (главная и обычная формы находятся в разных dll)?
...
Рейтинг: 0 / 0
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
    #34360485
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Абросов Юрий...главная и обычная формы находятся в разных dll...
так вот с этого собственно и надо было начинать
код в студию (c)
...
Рейтинг: 0 / 0
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
    #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
Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
    #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
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Джентльмены и леди, как из основного окна приложения добраться к другому открытому окну
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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