Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Форма Visual Basic 6

Автор вопроса: user187573Ответов: 3

Как я могу узнать, что форма (кроме той, над которой я работаю) открыта или закрыта?

vb6

Ответы

Ответ 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.

Похожие материалы