Freigeben über


My.Forms-Objekt

Bietet Eigenschaften für den Zugriff auf eine Instanz jedes im aktuellen Projekt deklarierten Windows-Formulars.

Bemerkungen

Das My.Forms-Objekt stellt eine Instanz für jedes Formular im aktuellen Projekt bereit. Der Name der Eigenschaft stimmt mit dem des Formulars überein, auf das die Eigenschaft zugreift.

Sie können auf die Formulare zugreifen, die vom My.Forms-Objekt bereitgestellt werden, indem Sie den Namen des Formulars ohne Qualifizierung verwenden. Da der Eigenschaftenname mit dem Typnamen des Formulars identisch ist, können Sie auf ein Formular zugreifen, als ob es eine Standardinstanz hätte. My.Forms.Form1.Show entspricht beispielsweise Form1.Show.

Das My.Forms-Objekt macht nur die Formulare verfügbar, die dem aktuellen Projekt zugeordnet sind. Es bietet keinen Zugriff auf Formulare, 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 verwenden, der als DllName.FormName geschrieben wird.

Sie können mithilfe der OpenForms-Eigenschaft 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 Zugriff auf eine Instanz eines Formulars im aktuellen Projekt. Der Name der Eigenschaft ist mit dem Namen des Formulars identisch, auf das die Eigenschaft zugreift, und der Eigenschaftentyp ist mit dem Typ des Formulars identisch.

Hinweis

Wenn es einen Namenskonflikt gibt, lautet der Eigenschaftsname für den Zugriff auf ein Formular RootNamespace_Namespace_FormName. Nehmen Sie z. B. zwei Formulare mit dem Namen Form1.. Wenn sich eines dieser Formulare im Stammnamespace WindowsApplication1 und im Namespace Namespace1 befindet, greifen Sie über My.Forms.WindowsApplication1_Namespace1_Form1 auf das Formular zu.

Das My.Forms-Objekt bietet Zugriff auf die Instanz des Hauptformulars der Anwendung, das beim Start erstellt wurde. Für alle anderen Formulare erstellt das My.Forms-Objekt eine neue Instanz des Formulars, wenn darauf zugegriffen wird, und speichert es. Nachfolgende Versuche, auf diese Eigenschaft zuzugreifen, geben diese Instanz des Formulars zurück.

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

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

Hinweis

In der Regel muss der Operator Is oder IsNot den Wert der Eigenschaft lesen, um den Vergleich durchzuführen. Wenn die Eigenschaft jedoch derzeit Nothing speichert, erstellt die Eigenschaft eine neue Instanz des Formulars und gibt dann diese Instanz zurück. Der Visual Basic-Compiler behandelt die Eigenschaften des My.Forms-Objekts jedoch unterschiedlich und ermöglicht dem Operator Is oder IsNot, den Status der Eigenschaft zu überprüfen, ohne ihren Wert zu ändern.

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 dieses Beispiel funktioniert, muss Ihr Projekt ein Formular mit dem Namen SidebarMenu haben.

Dieser Code funktioniert nur in einem Windows-Anwendungsprojekt.

Anforderungen

Verfügbarkeit nach Projekttyp

Projekttyp Verfügbar
Windows-Anwendung Ja
Klassenbibliothek Nein
Konsolenanwendung Nein
Windows-Steuerelementbibliothek Nein
Websteuerelementbibliothek Nein
Windows-Dienst Nein
Website Nein

Weitere Informationen