0

我是 VB.net 的新手,有一个问题希望您能帮助我。

我有一个打开按钮的表单,当我按下按钮时,表单 2 会打开。然后,我希望表单 1 上的按钮在表单 2 打开时关闭表单 2。

我在按钮单击子中有以下代码..

Dim openForm As Form2
openForm =New Form2()


If Application.OpenForms. OfType(Of Form2).Any() Then

Form2.Close()

Else

openForm.Show()
openForm = Nothing

End If

当我第一次按下按钮时,表格 2 会打开。但是再次按下按钮没有任何作用,表单不会关闭。

任何帮助都感激不尽。

谢谢

4

2 回答 2

1

您总是在创建 的新实例Form2,但您应该真正关闭现有实例,并且只有在您想打开新表单时才创建新实例。

' We are keeping our opened form reference here!
Dim openForm As Form2

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        If Application.OpenForms.OfType(Of Form2).Any() Then
              ' No `openForm = new Form2` here - we need to close the existing instance
              ' and not to create new one
              openForm.Close()
        Else
            ' Create new instance only here!
            openForm = New Form2()
            openForm.Show()
        End If

或者

    Dim openForms = Application.OpenForms.OfType(Of Form2)()
    ' If there is Form2 instance opened
    If openForms.Any() Then
        ' Get it and close it!
        openForms.First().Close()
    Else
        Dim openForm As New Form2
        openForm.Show()
    End If
于 2013-09-08T17:45:04.207 回答
0

尝试这个

    If Application.OpenForms.OfType(Of Form2).Any() Then
        Application.OpenForms.OfType(Of Form2).ElementAt(0).Close()
    Else
        Form2.Show()
    End If
于 2014-12-25T14:14:13.623 回答