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
分配给该窗体的属性来处置该窗体。 属性资源库调用窗体的 Close 方法,然后将 Nothing
分配给存储的值。 如果将除 Nothing
之外的任何值分配给属性,则资源组会引发 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 应用程序 | 是 |
类库 | 否 |
控制台应用程序 | 否 |
Windows 控件库 | 否 |
Web 控件库 | 否 |
Windows 服务 | 否 |
网站 | 否 |