WindowsFormsApplicationBase.OpenForms Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri az alkalmazás összes megnyitott űrlapjának gyűjteményét.
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
Tulajdonság értéke
Az alkalmazás összes megnyitott űrlapját tartalmazó gyűjtemény.
Példák
Ez a példa végighalad az alkalmazás megnyitott űrlapja felett, kiválasztja azokat, amelyek közvetlenül elérhetők az aktuális szálon, és megjeleníti a címüket egy ListBox vezérlőben. Ebben a példában a Windows Forms alkalmazásnak Form1 nevű űrlapot kell létrehoznia, amely egy ListBox1 nevű listamezőt tartalmaz.
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
Ez a példa az alkalmazás nyitott űrlapjai fölé hurkol, és a címüket egy ListBox vezérlőben jeleníti meg.
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
Megjegyzések
A My.Application.OpenForms tulajdonság lekéri az alkalmazás összes megnyitott űrlapjának gyűjteményét. A viselkedés megegyezik a tulajdonságával Application.OpenForms .
Note
A My.Application.OpenForms tulajdonság az összes megnyitott űrlapot visszaadja, függetlenül attól, hogy melyik szál nyitotta meg őket. Mielőtt hozzá férne, ellenőrizze az InvokeRequired egyes űrlapok tulajdonságát; ellenkező esetben kivételt InvalidOperationException jelenthet.
Rendelkezésre állás projekttípus szerint
| Projekt típusa | Elérhető |
|---|---|
| Windows Forms alkalmazás | Yes |
| Osztálytár | No |
| Konzolalkalmazás | No |
| Windows Forms vezérlőtár | No |
| Webvezérlő-kódtár | No |
| Windows-szolgáltatás | No |
| Webhely | No |