【问题标题】:vb.net Closing multiple form and open another formvb.net 关闭多个表单并打开另一个表单
【发布时间】:2016-01-29 04:38:29
【问题描述】:

我打开了 2 个表单,我当前的表单在对话框中。现在我想关闭那 2 个表单并打开另一个表单。

 Dim frmStg2 As New frmStageTwo
 Dim frmStg1 As New frmStageOne

        frmStg2.Show()
        Me.Close()
        frmStg1.Close()

但此代码似乎无法正常工作,frmStageOne 仍处于打开状态并显示 frmStageTwo,但我无法查看该表单。

This is what happen

【问题讨论】:

  • 哪个是Me,对话框?其中之一是主要的启动形式吗?
  • 是的,它是对话框,它们都不是启动表单。

标签: vb.net forms


【解决方案1】:

您正在尝试关闭尚未打开的表单实例。

当您使用 New 关键字时,您正在声明一个对象的新实例(在本例中为 Form),它具有自己的基类属性和字段版本。

为了关闭已经存在的表单实例,您可以循环访问Application.OpenForms 属性。

For Each frm As Form In Application.OpenForms
    If frm.GetType() Is GetType(frmStageOne) Then
        frm.Close()
    End If
Next

你实际上可以把它变成一个方法:

Public Sub CloseFormsOfType(ByVal TargetForm As Form)
    For Each frm As Form In Application.OpenForms
        If frm.GetType() Is TargetForm.GetType() Then
            frm.Close()
        End If
    Next
End Sub

...然后打电话:

CloseFormsOfType(frmStageOne)

【讨论】:

  • 谢谢先生,它救了我! :)
  • @PauloRomulo 请按帖子旁边的绿色勾号将我的帖子标记为已接受的答案。这将表明您对贡献者的感谢,但它也会向其他有同样问题的用户表明这对您有用。 :)
猜你喜欢
  • 2016-06-03
  • 2020-08-04
  • 2013-06-22
  • 2014-02-02
  • 1970-01-01
  • 2012-09-22
  • 2017-02-01
  • 2016-04-21
  • 2015-02-26
相关资源
最近更新 更多