更新:2007 年 11 月
获取应用程序的所有打开的窗体的集合。
' Usage
Dim value As System.Windows.Forms.FormCollection = My.Application.OpenForms
' Declaration
Public ReadOnly Property OpenForms As System.Windows.Forms.FormCollection
返回值
一个 FormCollection 对象,它包含应用程序的所有打开的窗体。
备注
My.Application.OpenForms 属性获取应用程序的所有打开的窗体的集合。此行为等同于 Application.OpenForms 属性。
| .gif) 说明: | 
|---|
| My.Application.OpenForms 属性返回所有打开的窗体,而不考虑由哪个线程打开这些窗体。您应该在访问每个窗体前检查其 InvokeRequired 属性;否则,它可能引发 InvalidOperationException 异常。有关更多信息,请参见如何:访问应用程序中所有打开的窗体。 | 
任务
下表列出了涉及 My.Application.OpenForms 属性的任务的示例。
| 要执行的操作 | 请参见 | 
|---|---|
| 显示应用程序的所有打开的窗体的标题 | 
示例
此示例循环通过应用程序的打开的窗体,选择当前线程可直接访问的窗体,并且在 ListBox 控件中显示其标题。若要访问打开的窗体,请参见如何:访问应用程序中所有打开的窗体。
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
此示例要求您的 Windows 窗体应用程序具有名为 Form1 的窗体,而且该窗体包含名为 ListBox1 的列表框。
要求
命名空间:Microsoft.VisualBasic.ApplicationServices
**程序集:**Visual Basic 运行库(位于 Microsoft.VisualBasic.dll 中)
不同项目类型的可用性
| 项目类型 | 是否可用 | 
|---|---|
| Windows 应用程序 | 是 | 
| 类库 | 否 | 
| 控制台应用程序 | 否 | 
| Windows 控件库 | 否 | 
| Web 控件库 | 否 | 
| Windows 服务 | 否 | 
| 网站 | 否 | 
权限
可能需要下列权限:
| 权限 | 说明 | 
|---|---|
| 控制与用户界面和剪贴板相关的权限。关联的枚举:AllWindows。 | 
请参见
参考
System.Windows.Forms.FormCollection