My.Forms 物件

更新:2007 年 11 月

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

備註

My.Forms 物件提供目前專案中每個表單的執行個體。屬性名稱和該屬性所存取的表單名稱相同。如需將表單加入至專案的詳細資訊,請參閱 HOW TO:將 Windows Form 加入至專案

您可以使用不含限定性條件的表單名稱存取 My.Forms 物件提供的表單。由於屬性名稱和表單的型別名稱相同,因此可以存取表單,如同它已有預設執行個體。例如,My.Forms.Form1.Show 等於 Form1.Show。

My.Forms 物件只會公開 (Expose) 與目前專案相關聯的表單。它不會提供對所參考 DLL 內宣告之表單的存取。若要存取 DLL 所提供的表單,您必須使用表單的限定名稱 (Qualified Name),寫法為 DllName.FormName。如需詳細資訊,請參閱 HOW TO:存取表單

您可以使用 My.Application.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 運算子檢查屬性的狀態,而不需改變屬性的值。

工作

下表列出包含 My.Forms 物件的工作範例。

若要

請參閱

從一個表單存取另一個表單。

HOW TO:存取表單

從一個表單控制另一個表單。

HOW TO:在應用程式的表單之間通訊

範例

這個範例會變更預設 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 服務

網站

請參閱

工作

HOW TO:將 Windows Form 加入至專案

HOW TO:存取表單

概念

存取應用程式表單

參考

My.Application.OpenForms 屬性

My.Application.OpenForms 屬性

Is 運算子 (Visual Basic)

IsNot 運算子

Form

Close