WindowsFormsApplicationBase.OpenForms プロパティ
アセンブリ: Microsoft.VisualBasic (microsoft.visualbasic.dll 内)

アプリケーションで開かれているすべてのフォームを保持する FormCollection オブジェクト。

詳細については、Visual Basic のトピック「My.Application.OpenForms プロパティ」を参照してください。
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 フォーム アプリケーションに、Form1 という名前のフォームと ListBox1 という名前のリスト ボックスが配置されていることを前提としています。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- WindowsFormsApplicationBase.OpenForms プロパティのページへのリンク