Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 62
1

Полтергейст с QueryClose

23.09.2017, 08:45. Показов 2617. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго утра.
имеется две формы
в первой
Visual Basic
1
2
3
4
5
Private Sub CommandButton1_Click()
UserForm1.Hide
Unload UserForm1
UserForm2.Show
End Sub
во второй
Visual Basic
1
2
3
4
5
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
UserForm2.Hide
Unload UserForm2
UserForm1.Show
End Sub
в первой нажимаем кнопку, открывается вторая
во второй нажимаем красный крестик, вторая форма закрывается и открывается первая
в первой опять нажимаем кнопку и, о чудо, опять открывается вторая
только вот теперь уже красный крестик никакой реакции не вызывает

прошу совета
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.09.2017, 08:45
Ответы с готовыми решениями:

Отключение события QueryClose и вообще событий
Нажатие крестика в правом верхнем углу формы генерирует событие QueryClose , при этом разрушается,...

код в Queryclose
Доброго! такая вот непонятка в QueryClose код: t1=doc.ysh_count(0) чисто для дебаггера...

Как отключить выполнение событий?(например, Queryclose)
Привет всем! Может кто знает, как можно запретить любые автоматические действия, не связанные с...

Не обрабатывается событие QueryClose при закрытии диалогового окна
Есть диалоговое окно - когда мы его вызываем из одной формы, то событие, описанное в QueryClose,...

5
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
23.09.2017, 09:08 2
Зачем же выгружать из памяти
Visual Basic
1
2
Unload UserForm1
Unload UserForm2
закоментируй или удали строку
0
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 62
23.09.2017, 09:26  [ТС] 3
если просто hide то текстбоксы надо очищать вручную, а тут "раз и все"
причем все то же самое, но повешенное на кнопку "отмена" работает нормально
да и хочется физику неверной работы понять
0
Заблокирован
23.09.2017, 09:56 4
Лучший ответ Сообщение было отмечено adonix100 как решение

Решение

adonix100, попробуйте дополнить одну строку нулем
Visual Basic
1
UserForm1.Show 0
?..
1
0 / 0 / 0
Регистрация: 09.09.2017
Сообщений: 62
23.09.2017, 10:09  [ТС] 5
работает нормально, спасибо
а в чем связь модальности и QueryClose?
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,102
23.09.2017, 20:56 6
Цитата Сообщение от adonix100 Посмотреть сообщение
UserForm2.Show
какое же здесь чудо, если стоит этот оператор. Если даже вы не поставили Load UserForm, то метод Show сделает это, сначала загрузит, а потом покажет

Добавлено через 4 минуты
adonix100, можно перед этим оператором поставить условие, если не загружена Form2, то не показывать

Добавлено через 1 час 31 минуту
adonix100, например так

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub CommandButton1_Click()
Unload UserForm1
If Not TF Then
  TF = True: UserForm2.Show
End If
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Unload UserForm2
UserForm1.Show
End Sub
 
Public TF As Boolean это описание поставить в [U]программный[/U] модуль (не в код формы и не ЭТА
                КНИГА)      тогда в нужный момент снова можно повторить показ формы2 TF=False
0
23.09.2017, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.09.2017, 20:56
Помогаю со студенческими работами здесь

Полтергейст
Ситуация следующая: Есть компьютер со звуковой картой встроенной в материнку (Realtek ALC892 @...

Полтергейст, а не компьютер!
Здравствуйте! Я новый пользователь на вашем форуме, постарался поискать решение моей проблемы, но к...

Полтергейст какойто
всем привет! вобщем дело такое есть форма дока на ней два поля ридерс и едитор. в полях прописани...

Вирус или полтергейст?
Ситуация такая - с недавних пор при включении или перезапуске компьютера стала целенаправленно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru