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 例外狀況。
您可以使用 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
的表單。
此程式碼僅可用於 Windows 應用程式專案內。
需求
依專案類型的可用性
專案類型 | 可用的 |
---|---|
Windows 應用程式 | 是 |
類別庫 | No |
主控台應用程式 | No |
Windows 控制項程式庫 | No |
Web 控制項程式庫 | No |
Windows 服務 | No |
網站 | No |