共用方式為


My.Forms 物件 (Visual Basic)

提供可用於存取目前專案中所宣告之每個 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 運算子檢查屬性的狀態,而不需改變屬性的值。

工作

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

若要

請參閱

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

HOW TO:在應用程式的表單之間通訊 (Visual Basic)

範例

這個範例會變更預設 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 加入至專案

參考

OpenForms

Is 運算子 (Visual Basic)

IsNot 運算子 (Visual Basic)

Form

Close

概念

物件 (Visual Basic)

存取應用程式表單 (Visual Basic)