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 サイト |
不可 |
アクセス許可
次のアクセス許可が必要です。
アクセス許可 |
説明 |
---|---|
ユーザー インターフェイスとクリップボードに関係するアクセス許可を制御します。関連する列挙値 : AllWindows。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。
参照
参照
System.Windows.Forms.FormCollection