Как сделать, чтобы окно диалога закрывалось, а не висело под другим?

Автор OOKapitan, 8 июня 2018, 18:17

0 Пользователи и 1 гость просматривают эту тему.

OOKapitan

       Здравствуйте.
      Помогите, пожалуйста, в небольшой проблемке. Давно уже пользуюсь самописным msgbox, предложенном мне здесь, на кнопки которого повешены макросы. В макросах этих есть обычные msgboxы. Так вот когда нажимаешь на кнопку "Да" или "Нет" этого самописного msgbox, то он продолжает висеть, а поверх него появляется msgbox из вызванного им макроса. Подробнее на приложенном скрине. Скажите, пожалуйста, что нужно дописать в диалог (или может в вызванный им макрос), чтобы самописный msgbox полностью закрывался, а не висел под msgbox из вызванного макроса?

rami

Когда нажимаете на кнопку вызывающую msgbox, в первой строке макроса назначенного на кнопку запишите:
dlg.setVisible(false)
это скроет диалог, когда нужно будет снова сделать диалог видимым используйте:
dlg.setVisible(true)
чтобы ликвидировать диалог:
dlg.dispose()

Но, вообще, нужно смотреть на конкретный код.

OOKapitan

Цитата: rami от  8 июня 2018, 17:47в первой строке макроса назначенного на кнопку запишите:
Огромнейшее спасибо.

OOKapitan

А если я напишу так:
Sub VbYes
dlg.setVisible(false)
Macros
dlg.dispose()
End Sub
, где Macros - мой макрос, Macros вызовится?

rami

Конечно, выполнится и даже диалог сохранится, но станет невидимым, если диалог больше не нужен, то просто переместите dlg.dispose() из конца макроса в начало.

OOKapitan

Цитата: rami от  8 июня 2018, 18:16если диалог больше не нужен, то просто переместите dlg.dispose() из конца макроса в начало
Большущее спасибо.