WindowsFormsApplicationBase.OpenForms Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Uygulamanın tüm açık formlarından oluşan bir koleksiyon alır.
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
Özellik Değeri
Uygulamanın tüm açık formlarını içeren bir koleksiyon.
Örnekler
Bu örnek, uygulamanın açık formları üzerinde döngü oluşturur, geçerli iş parçacığı tarafından doğrudan erişilebilen formları seçer ve başlıklarını bir ListBox denetimde görüntüler. Bu örnek, Windows Forms uygulamanızın adlı liste kutusu ListBox1
içeren adlı Form1
bir forma sahip olmasını gerektirir.
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
Bu örnek, uygulamanın açık formları üzerinde döngü oluşturur ve başlıklarını bir ListBox denetimde görüntüler.
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
Açıklamalar
özelliği, My.Application.OpenForms
uygulamanın tüm açık formlarının koleksiyonunu alır. Davranış özelliğiyle Application.OpenForms aynıdır.
Not
My.Application.OpenForms
özelliği, hangi iş parçacığının açtığından bağımsız olarak tüm açık formları döndürür. Her formun InvokeRequired özelliğini erişmeden önce denetlemeniz gerekir; aksi takdirde bir InvalidOperationException özel durum oluşturabilir.
Proje Türüne Göre Kullanılabilirlik
Proje türü | Kullanılabilir |
---|---|
Windows Forms Uygulaması | Evet |
Sınıf Kitaplığı | No |
Konsol Uygulaması | No |
Windows Forms Denetim Kitaplığı | No |
Web Denetim Kitaplığı | No |
Windows Hizmeti | No |
Web Sitesi | No |