WindowsFormsApplicationBase.OpenForms Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u een verzameling van alle geopende formulieren van de toepassing op.
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
Waarde van eigenschap
Een verzameling die alle geopende formulieren van de toepassing bevat.
Voorbeelden
In dit voorbeeld worden de geopende formulieren van de toepassing herhaald, worden de geopende formulieren geselecteerd die rechtstreeks toegankelijk zijn voor de huidige thread en worden de bijbehorende titels in een ListBox besturingselement weergegeven. In dit voorbeeld moet uw Windows Forms toepassing een formulier hebben met de naam Form1 met een keuzelijst met de naam 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
In dit voorbeeld worden de geopende formulieren van de toepassing herhaald en worden de bijbehorende titels weergegeven in een ListBox besturingselement.
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
Opmerkingen
De My.Application.OpenForms eigenschap haalt een verzameling van alle geopende formulieren van de toepassing op. Het gedrag is identiek aan de Application.OpenForms eigenschap.
Note
De My.Application.OpenForms eigenschap retourneert alle geopende formulieren, ongeacht welke thread ze heeft geopend. Controleer de InvokeRequired eigenschap van elk formulier voordat u het opent. Anders kan er een InvalidOperationException uitzondering ontstaan.
Beschikbaarheid per projecttype
| Projecttype | Available |
|---|---|
| Windows Forms toepassing | Yes |
| Klassebibliotheek | No |
| Console toepassing | No |
| Windows Forms-besturingselementbibliotheek | No |
| Webcontrolebibliotheek | No |
| Windows-serviceprogramma | No |
| Website | No |