Как я могу узнать, что форма (кроме той, над которой я работаю) открыта или закрыта?
Вопрос
Форма Visual Basic 6
Ответы
Ответ 1 · рейтинг 7 · Daniel Rikowski
Вы должны различать Загружено и Видимо.
- Для наглядности просто проверьте свойство
Visible(обратите внимание, что если это сделать для незагруженной формы, она загрузится). Для состояния загрузки к сожалению нет свойства. Вам нужно перебрать все формы и посмотреть, содержится ли ваша форма в списке загруженных форм:
Public Function IsFormLoaded(FormToCheck As Form) As Boolean Dim F As Form For Each F In Forms If F Is FormToCheck Then IsFormLoaded = True Exit Sub End If Next End Sub
Глобальная коллекция Forms содержит все загруженные в данный момент формы.
Ответ 2 · рейтинг 3 · Jan Willem B
Вы можете выполнить поиск в коллекции форм
Dim aForm
For Each aForm In Forms
If aForm Is Form1 Then
MsgBox "Found Form1"
End If
Next
Ответ 3 · рейтинг 1 · Greg D
Если форма находится в вашем приложении, вы можете просто отслеживать ее состояние внутри. В конце концов, вы контролируете точки в коде, когда он может быть создан или уничтожен.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.