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

可以使用或IsNot运算符测试对象的属性My.Forms是否存储窗体Is的实例。 可以使用这些运算符检查属性的值是否为 Nothing

注释

通常, IsIsNot 运算符必须读取属性的值才能执行比较。 但是,如果属性当前存储 Nothing,则该属性将创建窗体的新实例,然后返回该实例。 但是,Visual Basic 编译器以不同的方式处理对象的属性 My.Forms ,并允许 IsIsNot 运算符在不更改其值的情况下检查属性的状态。

示例:

本示例更改默认 SidebarMenu 窗体的标题。

Sub ShowSidebarMenu(ByVal newTitle As String)
    If My.Forms.SidebarMenu IsNot Nothing Then
        My.Forms.SidebarMenu.Text = newTitle
    End If
End Sub

若要使此示例正常工作,项目必须具有名为 <a0/a0> 的窗体。

此代码仅适用于 Windows 应用程序项目。

要求

按项目类型提供可用性

项目类型 可用
Windows 应用程序 是的
类库
控制台应用程序
Windows 控件库
Web 控件库
Windows 服务
网站

另请参阅