My.Forms 物件
提供可用於存取目前專案中所宣告之每個 Windows 表單執行個體的屬性。
備註
My.Forms 物件提供目前專案中每個表單的執行個體。屬性名稱和該屬性所存取的表單名稱相同。如需將表單加入至專案的詳細資訊,請參閱 HOW TO:將 Windows Form 加入至專案。
您可以使用不含限定性條件的表單名稱存取 My.Forms 物件提供的表單。由於屬性名稱和表單的型別名稱相同,因此可以存取表單,如同它已有預設執行個體。例如,My.Forms.Form1.Show 等於 Form1.Show。
My.Forms 物件只會公開 (Expose) 與目前專案相關聯的表單。它不會提供對所參考 DLL 內宣告之表單的存取。若要存取 DLL 所提供的表單,您必須使用表單的限定名稱 (Qualified Name),寫法為 DllName.FormName。
您可以使用 OpenForms 屬性來取得應用程式中所有開啟表單的集合。
這個物件和它所有的屬性都只適用於 Windows 應用程式。
屬性
My.Forms 物件的每個屬性都可以用於存取目前專案中的某個表單執行個體。屬性名稱和該屬性所存取的表單名稱相同,而屬性型別 (Property Type) 則和表單的型別相同。
![]() |
---|
如果發生名稱衝突,存取表單的屬性名稱就是 RootNamespace_Namespace_FormName。例如,假設有兩個名為 Form1. 的表單,如果其中一個表單位於根命名空間 WindowsApplication1 的命名空間 Namespace1,則必須透過 My.Forms.WindowsApplication1_Namespace1_Form1 存取該表單。 |
My.Forms 會提供應用程式啟動時所建立之主要表單的存取。至於其他表單,My.Forms 物件會在存取表單時建立新的表單執行個體,並將它儲存起來。以後只要存取該屬性,就會傳回該表單執行個體。
您可以將 Nothing 指派給表單的屬性,即可處置 (Dispose) 該表單。屬性 Setter 會呼叫表單的 Close 方法,然後將 Nothing 指派給儲存的值。如果將 Nothing 以外的任何值指定給屬性,則 Setter 會擲回 ArgumentException 例外狀況。
您可以使用 Is 或 IsNot 運算子,測試 My.Forms 物件的屬性是否儲存表單執行個體。也可以使用這些運算子,檢查屬性的值是否為 Nothing。
![]() |
---|
通常,Is 或 IsNot 運算子必須讀取屬性值,才能執行比較作業。但如果屬性目前是儲存 Nothing,則屬性會建立新的表單執行個體,然後傳回該執行個體。不過,Visual Basic 編譯器會以不同的方式處理 My.Forms 物件的屬性,並允許 Is 或 IsNot 運算子檢查屬性的狀態,而不需改變屬性的值。 |
範例
這個範例會變更預設 SidebarMenu 表單的標題。
Sub ShowSidebarMenu(ByVal newTitle As String)
If My.Forms.SidebarMenu IsNot Nothing Then
My.Forms.SidebarMenu.Text = newTitle
End If
End Sub
若要成功使用這個範例,您的專案必須具有名為 SidebarMenu 的表單。如需詳細資訊,請參閱 HOW TO:將 Windows Form 加入至專案。
這個程式碼只適用於 Windows 應用程式專案。
需求
依專案類型的可用性
專案類型 |
是否可用 |
Windows 應用程式 |
是 |
類別庫 |
否 |
主控台應用程式 |
否 |
Windows 控制項程式庫 |
否 |
Web 控制項程式庫 |
否 |
Windows 服務 |
否 |
網站 |
否 |