Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22

Модальность формы при запуске

16.05.2021, 13:26. Показов 1629. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не смог понять. После события Form_Load() появляется собственно форма, но она модальна или нет?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2021, 13:26
Ответы с готовыми решениями:

Проверка формы на модальность
Помогите прлиззззззззззззз!!! Возможно ли как нить при помощи условий выяснить какая форма проекта является модальной, ну что нить...

Как открыть при запуске две формы одновременно
Подскажите возможно или нет открыть при запуске программы 2 формыMDI одновременно не используя Timer? Если да хотелось бы взглянуть на код....

Как отменить модальность формы?
Работа в VBA с Excel При нажатием кнопки ВЫХОД на первой форме она закрывается и открывается вторая: Private Sub...

6
 Аватар для Rh2Dark
32 / 32 / 0
Регистрация: 05.11.2020
Сообщений: 102
17.05.2021, 10:06
Всегда думал, что форма появляется на событие Activate, а при Load она еще грузится в оперативку.
Ну и понятие модальности, оно завсегда учитывается относительно чего-то. Например, дочерняя модальная форма имеет модальность относительно родительской. А если форма одна, тогда относительно чего ей быть модальной? Тут надо подумать
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
17.05.2021, 11:58  [ТС]
Цитата Сообщение от Rh2Dark Посмотреть сообщение
Всегда думал, что форма появляется на событие Activate
Цитата Сообщение от Argus19 Посмотреть сообщение
После события Form_Load()

Цитата Сообщение от Rh2Dark Посмотреть сообщение
Тут надо подумать
И я так думаю.
Поставил в событии Form_Load()
Visual Basic
1
    Form1.Show vbModal
но, думаю, что это не корректно.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
17.05.2021, 15:29
Цитата Сообщение от Argus19 Посмотреть сообщение
Поставил в событии Form_Load()
Visual BasicВыделить код
1
    Form1.Show vbModal
У вас всего 1 форма? Тогда в чем смысл её модальности?
В проекте должно быть минимум 2 формы, где вторая может быть модальной, изначально она невидимая.
Form_Load() вообще лишнее. Из родительской формы вызываем Form2.Show vbModal или Form2.Show (1)
по любому событию, например клику по кнопке. Пока форма открыта, родитель недоступен до закрытия Form2.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
17.05.2021, 18:47  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
В проекте должно быть минимум 2 формы
Так и есть. Основная форма должна быть модальной, чтобы исполнялся только код из неё. Вторая форма для картинок и сделана поверх всех окон. Смущает применение константы
Visual Basic
1
Private Const SWP_NOMOVE = &H2
судя по названию, она должна блокировать движение формы, а у меня двигается.
Ищу проблемы "замерзания" второй формы в процессе работы.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
17.05.2021, 19:19
Цитата Сообщение от Argus19 Посмотреть сообщение
Основная форма должна быть модальной, чтобы исполнялся только код из неё.
Вы неверно понимаете термин "модальная". Модальная форма блокирует работу пользователя с родительским приложением до тех пор, пока пользователь это окно не закроет.
Вы неправильно понимаете флаг SWP_NOMOVE. Он сохраняет текущую позицию (игнорирует X и Y параметры) при вызове SetWindowPos. Мышкой или другим способом такое окно конечно же можно двигать.

Добавлено через 8 минут
Цитата Сообщение от Argus19 Посмотреть сообщение
Ищу проблемы "замерзания" второй формы в процессе работы.
Вам нужно заморозить форму на время работы с первой формой? дайте команду Form2.Enabled = False
В совокупности с командой "всегда сверху" вторая форма будет стоять как вкопанная.
0
 Аватар для Argus19
1427 / 444 / 78
Регистрация: 24.09.2017
Сообщений: 2,525
Записей в блоге: 22
17.05.2021, 19:38  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Он сохраняет текущую позицию (игнорирует X и Y параметры)
Да. Я посмотрел. Эта константа используется совместно с константой SWP_NOSIZE , которая "Сохраняет координаты текущего окна", но про игнорирование X и Y не сказано. При добавлении константы SWP_SHOWWINDOW начинают одновременно работать два окна: "замёрзшее" с чёрным фоном и двигается, как и должно быть, прозрачное окно.
При применении вместо HWND_TOPMOST флага HWND_TOP, при запуске из IDE пропадают обе формы.
Чудеса какие-то. Вот и ищу, что может мешать задуманной логике работы. Установка фокуса на вторую форму не помогает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2021, 19:38
Помогаю со студенческими работами здесь

Автозакрытие Excel-я при запуске формы
Скажите пожалуйста как сделать чтобы при открытии программы автоматически закрывалась книга экселя?

Выделение текста в TextBox при запуске МОДАЛЬНОЙ формы
Здравствуйте! Столкнулся со следующей проблемой. Имеются две одинаковые формы, единственное отличие в них - одна форма модальная (т....

Инициализация немодальной пользовательской формы при запуске файла
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, вычислить, что не так с открытием файла. Суть файла в том, что на первом листе...

Скрыть книгу Excel при запуске и отображение формы авторизации
Доброе время суток! Прошу у Вас помощи либо совета. Вопрос заключается в следующем, есть книга Excel для обслуживания некой БД, в ней...

Хочу сделать, чтобы при повторном запуске пользовательской формы в ней сохранялись результати последней сесии
привет нужна ваша помощь хочу сделать, чтобы при повторном запуске пользовательской формы в ней сохранялись результати последней...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru