WindowsFormsApplicationBase.OpenForms Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá kolekci všech otevřených formulářů aplikace.
public:
property System::Windows::Forms::FormCollection ^ OpenForms { System::Windows::Forms::FormCollection ^ get(); };
public System.Windows.Forms.FormCollection OpenForms { get; }
member this.OpenForms : System.Windows.Forms.FormCollection
Public ReadOnly Property OpenForms As FormCollection
Hodnota vlastnosti
Kolekce, která obsahuje všechny otevřené formuláře aplikace.
Příklady
Tento příklad smyčce projede otevřené formuláře aplikace, vybere ty, které je přímo přístupné aktuálním vláknem, a zobrazí jejich názvy v ovládacím ListBox prvku. Tento příklad vyžaduje, aby vaše aplikace model Windows Forms měla formulář s názvemForm1
, který obsahuje seznam s názvem ListBox1
.
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
Tento příklad se smyčí přes otevřené formuláře aplikace a zobrazí jejich názvy v ovládacím ListBox prvku.
Private Sub GetOpenFormTitles()
Dim formTitles As New Collection
Try
For Each f As Form In My.Application.OpenForms
' Use a thread-safe method to get all form titles.
formTitles.Add(GetFormTitle(f))
Next
Catch ex As Exception
formTitles.Add("Error: " & ex.Message)
End Try
Form1.ListBox1.DataSource = formTitles
End Sub
Private Delegate Function GetFormTitleDelegate(f As Form) As String
Private Function GetFormTitle(f As Form) As String
' Check if the form can be accessed from the current thread.
If Not f.InvokeRequired Then
' Access the form directly.
Return f.Text
Else
' Marshal to the thread that owns the form.
Dim del As GetFormTitleDelegate = AddressOf GetFormTitle
Dim param As Object() = {f}
Dim result As System.IAsyncResult = f.BeginInvoke(del, param)
' Give the form's thread a chance process function.
System.Threading.Thread.Sleep(10)
' Check the result.
If result.IsCompleted Then
' Get the function's return value.
Return "Different thread: " & f.EndInvoke(result).ToString
Else
Return "Unresponsive thread"
End If
End If
End Function
Poznámky
Vlastnost My.Application.OpenForms
získá kolekci všech otevřených formulářů aplikace. Chování je stejné jako vlastnost Application.OpenForms .
Poznámka
Vlastnost My.Application.OpenForms
vrátí všechny otevřené formuláře bez ohledu na to, které vlákno je otevřelo. Před přístupem k InvokeRequired jednotlivým formulářům byste měli zkontrolovat vlastnosti, jinak může dojít k výjimce InvalidOperationException .
Dostupnost podle typu projektu
Typ projektu | K dispozici. |
---|---|
Formulářová aplikace Windows | Ano |
Knihovna tříd | No |
Konzolová aplikace | No |
Knihovna ovládacích prvků formulářů Windows | No |
Knihovna webových ovládacích prvků | No |
Služba systému Windows | No |
Webu | No |