My.Forms 物件

可提供屬性,以存取目前專案中所宣告的每個 Windows 表單的執行個體。

備註

My.Forms 物件會提供目前專案中每個表單的執行個體。 屬性名稱和屬性存取的表單名稱相同。

您可以使用表單的名稱來存取 My.Forms 物件所提供的表單,而不需要加以限定。 因為屬性名稱與表單的類型名稱相同,所以這可讓您存取表單,就如同其已有預設執行個體一般。 例如,My.Forms.Form1.Show 相當於 Form1.Show

My.Forms 物件只會公開與目前專案建立關聯的表單。 不會提供在所參考 DLL 中宣告的表單存取權。 若要存取 DLL 提供的表單,您必須使用表單的限定名稱,寫為 DllName.FormName

您可以使用 OpenForms 屬性來取得所有應用程式其開放表單的集合。

物件及其屬性僅適用於 Windows 應用程式。

屬性

My.Forms 物件的每個屬性都提供目前專案內表單之執行個體的存取權。 屬性名稱與屬性存取的表單名稱相同,且屬性類型與表單的類型相同。

注意

如果發生名稱衝突,則存取表單的屬性名稱為 RootNamespace_Namespace_FormName。 例如,假設有兩個名為 Form1. 的表單,如果其中一個表單是在根命名空間 WindowsApplication1 和命名空間 Namespace1 中,則可以透過 My.Forms.WindowsApplication1_Namespace1_Form1 來存取該表單。

My.Forms 物件可讓您存取在啟動時所建立應用程式主要表單的執行個體。 針對所有其他表單,My.Forms 物件會在存取表單並儲存表單時,建立表單的新執行個體。 後續嘗試存取該屬性,會傳回該表單的執行個體。

您可以將 Nothing 指派給該表單的屬性,以處置表單。 屬性 setter 會呼叫表單的 Close 方法,然後將 Nothing 指派給預存值。 如果您將 Nothing 以外的任何值指派給屬性,則 setter 會擲回 ArgumentException 例外狀況。

您可以使用 IsIsNot 運算子來測試 My.Forms 物件的屬性是否儲存表單的執行個體。 您可以使用這些運算子來檢查屬性的值是否為 Nothing

注意

一般而言,IsIsNot 運算子必須讀取屬性的值,才能執行比較。 不過,如果屬性目前儲存的是 Nothing,則屬性會建立表單的新執行個體,然後傳回該執行個體。 不過,Visual Basic 編譯器會以不同的方式處理 My.Forms 物件屬性,並允許 IsIsNot 運算子檢查屬性的狀態,而不改變其值。

範例

本範例會變更預設 SidebarMenu 表單的標題。

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

若要讓此範例運作,您的專案必須具有名為 SidebarMenu 的表單。

此程式碼僅可用於 Windows 應用程式專案內。

需求

依專案類型的可用性

專案類型 可用的
Windows 應用程式
類別庫 No
主控台應用程式 No
Windows 控制項程式庫 No
Web 控制項程式庫 No
Windows 服務 No
網站 No

另請參閱