#vb.net #mdi #showdialog
#vb.net #mdi #showdialog
Вопрос:
У меня есть родительский MDI, который открывает другую форму, подобную этой:
Dim frm As New Form1
frm.ShowDialog(Me)
В этой форме есть кнопка, при нажатии на которую выполняется следующее:
CreateObject("Shell.Application").ToggleDesktop()
Кнопка работает как положено (показывает рабочий стол) большую часть времени, но иногда родительский MDI не сворачивается. Все остальные окна, включая форму выше, сворачиваются каждый раз.
Почему это происходит и как мне это исправить?
Комментарии:
1. Вероятно, это как-то связано с порядком сворачивания окон на рабочем столе. Что, вероятно, является случайным. Избегайте использования диалогового окна.
Ответ №1:
Вместо того, чтобы пытаться разрешить форму, показанную с ShowDialog
, я изменил угол, с которого я приближаюсь. Я покажу форму с помощью Show
и назначу MdiParent
, а вместо этого просто подделаю модальность формы. Поддельный модальный режим отключит все другие части родительского MDI, за исключением системных кнопок в строке заголовка. Если пользователь попытается закрыть родительский MDI, «модальное» окно издаст один звуковой сигнал и немного мигнет в строке заголовка.