提供用于访问当前项目中声明的每个 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
若要使此示例正常工作,项目必须具有名为 <
此代码仅适用于 Windows 应用程序项目。
要求
按项目类型提供可用性
项目类型 | 可用 |
---|---|
Windows 应用程序 | 是的 |
类库 | 否 |
控制台应用程序 | 否 |
Windows 控件库 | 否 |
Web 控件库 | 否 |
Windows 服务 | 否 |
网站 | 否 |