My.Application.OpenForms プロパティ

更新 : 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 プロパティと同じです。

メモ :

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 フォーム アプリケーション内に、ListBox1 という名前のリスト ボックスを含んだ Form1 というフォームを用意する必要があります。

必要条件

名前空間 : Microsoft.VisualBasic.ApplicationServices

クラス : WindowsFormsApplicationBase

アセンブリ : Visual Basic ランタイム ライブラリ (Microsoft.VisualBasic.dll 内)

プロジェクトの種類ごとの可用性

プロジェクトの種類

可用性

Windows アプリケーション

クラス ライブラリ

不可

コンソール アプリケーション

不可

Windows コントロール ライブラリ

不可

Web コントロール ライブラリ

不可

Windows サービス

不可

Web サイト

不可

アクセス許可

次のアクセス許可が必要です。

アクセス許可

説明

UIPermission

ユーザー インターフェイスとクリップボードに関係するアクセス許可を制御します。関連する列挙値 : AllWindows

詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。

参照

参照

My.Application オブジェクト

System.Windows.Forms.FormCollection

WindowsFormsApplicationBase.OpenForms

Application.OpenForms