我打开了2个表单,我当前的表单在对话框中。现在我要关闭那两个表格并打开另一个表格。
Dim frmStg2 As New frmStageTwo
Dim frmStg1 As New frmStageOne
frmStg2.Show()
Me.Close()
frmStg1.Close()
但是这段代码似乎不起作用frmStageOne仍然打开并显示frmStageTwo但我无法查看该表单。
答案 0 :(得分:0)
您正在尝试关闭尚未打开的表单实例。
当您使用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)