Как я могу узнать, что форма (кроме той, над которой я работаю) открыта или закрыта?
Вы должны различать Загруженный и Видимый .
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 содержит все загруженные в настоящее время формы.
Forms
Вы можете искать коллекцию форм
Dim aForm For Each aForm In Forms If aForm Is Form1 Then MsgBox "Found Form1" End If Next
Если форма находится в вашем приложении, вы можете просто отслеживать ее состояние внутри. В конце концов - вы контролируете точки в коде, когда он может быть создан или уничтожен.