Gets a collection of all the application's open forms.
Assembly: Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)
The My.Application.OpenForms property gets a collection of all the application's open forms. The behavior is identical to the Application.OpenForms property.
The My.Application.OpenForms property returns all open forms, regardless of which thread opened them. You should check the InvokeRequired property of each form before accessing it; otherwise, it might throw an InvalidOperationException exception. For more information, see How to: Access All Open Forms of an Application (Visual Basic).
The following table lists examples of tasks involving the My.Application.OpenForms property.
Display the titles of all the application's open forms
Availability by Project Type
Windows Forms Application
Windows Forms Control Library
Web Control Library
This example loops over the application's open forms, selects the ones directly accessible by the current thread, and displays their titles in a ListBox control. To access the open forms, see How to: Access All Open Forms of an Application (Visual Basic).
Private Sub GetOpenFormTitles() Dim formTitles As New Collection Try For Each f As Form In My.Application.OpenForms If Not f.InvokeRequired Then ' Can access the form directly. formTitles.Add(f.Text) End If Next Catch ex As Exception formTitles.Add("Error: " & ex.Message) End Try Form1.ListBox1.DataSource = formTitles End Sub
This example requires that your Windows Forms application have a form named Form1 that contains a list box named ListBox1.
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.