提供屬性,以存取目前專案中宣告之每個 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 擲回例外狀況。
您可以使用 或 IsNot 運算子來測試 物件的 屬性My.Forms是否儲存表單Is的實例。 您可以使用這些運算子來檢查 屬性的值是否為 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 應用程式 | 是的 |
| 類別庫 | 否 |
| 主控台應用程式 | 否 |
| Windows 控件庫 | 否 |
| Web 控制庫 | 否 |
| Windows 服務 | 否 |
| 網站 | 否 |