Форма Visual Basic 6

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


vb6
person user187573    schedule 11.10.2009    source источник


Ответы (3)


Вы должны различать Загружено и Видимо.

  • Для наглядности просто проверьте свойство 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 содержит все загруженные в данный момент формы.

person Daniel Rikowski    schedule 11.10.2009

Вы можете выполнить поиск в коллекции форм

Dim aForm
For Each aForm In Forms
  If aForm Is Form1 Then
    MsgBox "Found Form1"
  End If
Next
person Jan Willem B    schedule 11.10.2009

Если форма находится в вашем приложении, вы можете просто отслеживать ее состояние внутри. В конце концов, вы контролируете точки в коде, когда он может быть создан или уничтожен.

person Greg D    schedule 11.10.2009