关闭vb中的所有表单

时间:2010-10-19 13:20:45

标签: vb.net winforms

如何关闭所有表格


我使用wpf vb 2010

加载其他形式我喜欢

Private frm As MainWindow = New MainWindow 

打开我使用frm.Show()的窗口 并关闭它我使用frm.Close()


现在我有两种形式,如form1和form2

我想在点击按钮时打开form2 - 好吧很容易

问题当我使用按钮

打开form2时,如何从form2关闭form1

当我用户

Private frm As form1 = New form1 
frm.Close()

它像一个cricle,无法关闭

2 个答案:

答案 0 :(得分:1)

最简单的方法是为Form2创建一个构造函数,该构造函数在创建时引用了Form1的实例。 Form2的新实例可以保留该引用并在需要时关闭Form1的实例。

Public Class Form2

    Private Property formOne As Form1

    Public Sub New()
    End Sub

    Public Sub New(Form1 frm)
        formOne = frm
    End Sub

    Public Sub CloseFormOne()
        If formOne != null Then
            formOne.Close()
        End If
    End Sub

End Class

答案 1 :(得分:0)

项目+属性,应用程序选项卡,将关闭模式更改为“当最后一个表单关闭时”。这可确保您的应用在所有窗口关闭之前不会退出。

现在您可以编写如下代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim frm As New Form2
    '' Optional: keep it in the same spot
    frm.StartPosition = FormStartPosition.Manual
    frm.Location = Me.Location
    frm.Size = Me.Size
    '' Display the form
    frm.Show()
    '' Close the current form
    Me.Close()
End Sub