Freigeben über


My.Forms-Objekt

Aktualisiert: November 2007

Stellt Eigenschaften für den Zugriff auf eine Instanz jedes im aktuellen Projekt deklarierten Windows Form bereit.

Hinweise

Das My.Forms-Objekt stellt eine Instanz jedes Formulars im aktuellen Projekt bereit. Der Name der Eigenschaft stimmt mit dem Namen des Formulars überein, auf das die Eigenschaft zugreift. Informationen über das Hinzufügen von Formularen zu einem Projekt finden Sie unter Gewusst wie: Hinzufügen von Windows Forms zu einem Projekt.

Sie können mit dem Namen des Formulars ohne Qualifizierung auf die vom My.Forms-Objekt bereitgestellten Formulare zugreifen. Da der Eigenschaftenname mit dem Typnamen des Formulars übereinstimmt, können Sie auf das Formular wie auf ein Formular zugreifen, das über eine Standardinstanz verfügt. My.Forms.Form1.Show entspricht beispielsweise Form1.Show.

Das My.Forms-Objekt macht nur die dem aktuellen Projekt zugeordneten Formulare verfügbar. Es stellt keinen Zugriff auf Formulare bereit, die in DLLs deklariert sind, auf die verwiesen wird. Um auf ein Formular zuzugreifen, das von einer DLL bereitgestellt wird, müssen Sie den qualifizierten Namen des Formulars im Format DLL-Name.Formularname verwenden. Weitere Informationen finden Sie unter Gewusst wie: Zugreifen auf ein Formular.

Mit der My.Application.OpenForms-Eigenschaft können Sie eine Auflistung aller geöffneten Formulare der Anwendung abrufen.

Das Objekt und seine Eigenschaften sind nur für Windows-Anwendungen verfügbar.

Eigenschaften

Jede Eigenschaft des My.Forms-Objekts ermöglicht den Zugriff auf eine Instanz eines Formulars im aktuellen Projekt. Der Name der Eigenschaft stimmt mit dem Namen des Formulars überein, auf den die Eigenschaft zugreift, und der Eigenschaftentyp stimmt mit dem Typ des Formulars überein.

Hinweis:

Wenn ein Namenskonflikt besteht, lautet der Eigenschaftenname für den Zugriff auf ein Formular Stammnamespace_Namespace_Formularname. Angenommen, zwei Formulare heißen Form1.. Wenn sich eines dieser Formulare im Stammnamespace WindowsApplication1 und im Namespace Namespace1 befindet, greifen Sie auf dieses Formular über My.Forms.WindowsApplication1_Namespace1_Form1 zu.

Das My.Forms-Objekt ermöglicht den Zugriff auf die Instanz des Hauptformulars der Anwendung, das beim Starten der Anwendung erstellt wurde. Für alle anderen Formulare erstellt das My.Forms-Objekt eine neue Instanz des Formulars, wenn darauf zugegriffen wird, und speichert diese. Bei anschließenden Versuchen, auf diese Eigenschaft zuzugreifen, wird die Instanz des Formulars zurückgegeben.

Sie können ein Formular freigeben, indem Sie der Eigenschaft für das Formular Nothing zuweisen. Der Eigenschaftensetter ruft die Close-Methode des Formulars auf und weist anschließend dem gespeicherten Wert Nothing zu. Wenn Sie der Eigenschaft einen anderen Wert als Nothing zuweisen, löst der Setter eine ArgumentException-Ausnahme aus.

Mit dem Is-Operator oder dem IsNot-Operator können Sie überprüfen, ob eine Eigenschaft des My.Forms-Objekts eine Instanz des Formulars speichert. Sie können mit diesen Operatoren überprüfen, ob der Wert der Eigenschaft Nothing ist.

Hinweis:

Normalerweise muss der Is-Operator oder der IsNot-Operator den Wert der Eigenschaft lesen, um den Vergleich durchzuführen.. Wenn die Eigenschaft gegenwärtig jedoch Nothing speichert, erstellt sie eine neue Instanz des Formulars und gibt dann diese Instanz zurück. Der Visual Basic-Compiler behandelt aber die Eigenschaften des My.Forms-Objekts auf andere Weise und lässt das Überprüfen des Status der Eigenschaft durch den Is-Operator oder den IsNot-Operator ohne eine Änderung ihres Werts zu.

Aufgaben

In der folgenden Tabelle werden Beispiele für Aufgaben mit dem My.Forms-Objekt aufgeführt.

Zweck

Weitere Informationen finden Sie unter

Zugreifen auf ein Formular von einem anderen Formular

Gewusst wie: Zugreifen auf ein Formular

Steuern eines Formulars von einem anderen Formular

Gewusst wie: Kommunikation zwischen Formularen in einer Anwendung

Beispiel

In diesem Beispiel wird der Titel des Standardformulars SidebarMenu geändert.

Sub ShowSidebarMenu(ByVal newTitle As String)
    If My.Forms.SidebarMenu IsNot Nothing Then
        My.Forms.SidebarMenu.Text = newTitle
    End If
End Sub

Damit diese Beispiel ausgeführt werden kann, muss das Projekt das Formular SidebarMenu enthalten. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Windows Forms zu einem Projekt.

Dieser Code kann nur in einem Windows-Anwendungsprojekt ausgeführt werden.

Anforderungen

Verfügbarkeit nach Projekttyp

Projekttyp

Verfügbar

Windows-Anwendung

Ja

Klassenbibliothek

Nein

Konsolenanwendung

Nein

Windows-Steuerelementbibliothek

Nein

Web-Steuerelementbibliothek

Nein

Windows-Dienst

Nein

Website

Nein

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Windows Forms zu einem Projekt

Gewusst wie: Zugreifen auf ein Formular

Konzepte

Zugreifen auf Anwendungsformulare

Referenz

My.Application.OpenForms-Eigenschaft

My.Application.OpenForms-Eigenschaft

Is-Operator (Visual Basic)

IsNot-Operator

Form

Close