1

我的申请中有 2 份表格。我有打开 TopMost、CenterScreen 和 Maximized 的主窗体。然后我在这个屏幕上有另一个表单,当我按下按钮时它会弹出。第二个屏幕有一个导航到另一个屏幕的按钮,所以当我按下该按钮时,第二个表单关闭,主表单也应该关闭,并且选定的工作表打开。

但是,第二个屏幕关闭正常,但我的主屏幕保持打开和活动状态,而被调用的工作表打开但未启用。我追踪发生了什么,问题是所有代码都运行,但主屏幕似乎不想关闭。这是我的代码:

        Private Sub btnOpenDashboard_Click(sender As Object, e As EventArgs) Handles btnOpenDashboard.Click

    Dim welcomeForm As New frmWelcomePage

    If lblReportTitle.Text = "Employee Dashboard" Then

        Me.Close() 'This works
        welcomeForm.Close() 'This one remains open and active
        Globals.dsbEmployeeBoard.Select() 'This one opens but is not enabled


    End If


End Sub
4

2 回答 2

2

我从您的描述中假设您已经创建并显示了一个欢迎表单,然后再显示带有按钮的表单。

这行代码:“Dim welcomeForm As New frmWelcomePage”

正在创建欢迎页面的副本并将其关闭。

您需要引用打开的原始文件,而不是创建新文件。

如果我没记错的话,您应该可以删除该行并使用 frmWelcomPage.Close。

于 2013-07-29T21:49:24.660 回答
1

您需要将第一个表单 ( Form1) 的引用传递给第二个表单 ( Form2),以便在第二个表单中您可以关闭第一个表单,如下所示:

Public Class Form2 Inherits Form
Private _form1 As Form1

Public Sub New(form1 As Form1)
    Me.Form1 = form1
End Sub
End Class

Private Sub btnOpenDashboard_Click(sender As Object, e As EventArgs) Handles btnOpenDashboard.Click
    If lblReportTitle.Text = "Employee Dashboard" Then
        _form1.Close()
    End If
End Sub

然后,当您实例化 时Form2,您将传递对 的引用Form1,如下所示:

Dim form2 As New Form2(Me)

注:Me是 的实例Form1

于 2013-07-29T23:06:59.330 回答