当父窗口获得焦点时,Windows窗体自动关闭

时间:2012-01-24 03:02:09

标签: vb.net winforms

VB Windows窗体应用程序..我正在开发一个应用程序,其中部分程序围绕配置设置,允许用户输入配置项。在主窗体上单击配置菜单的菜单栏项目时,菜单将打开。这很好,但在配置菜单关闭之前,主窗体不应再次激活。这不会发生,并且mainform只是到了前台,配置表单转到后台...我意识到在Child表单上编写一个事件来处理这个不起作用,因为子窗口失去控制和主要形式获得控制..我想在主窗体上编写如下函数,但它似乎不合逻辑,因为我必须为每个窗体添加它并检查以确保子项在尝试关闭之前实际打开。

 Private Sub Form1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus
    MailSettingsWindow.Close()
    RentalSettingsWindow.Close()

End Sub

我取消了上面的子程序,并根据使用showdialog的推荐使用了下面的代码,这正如我所寻找的那样。

   Private Sub MailingAndEmailSettingsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MailingAndEmailSettingsToolStripMenuItem.Click
    Dim MailConfig As New MailSettingsWindow()
    MailSettingsWindow.Showdialog()
End Sub

1 个答案:

答案 0 :(得分:2)

我取消了上面的子例程,并根据使用ShowDialog的建议使用了下面的代码,它正如我所寻找的那样工作。

我的代码如下:

Private Sub MailingAndEmailSettingsMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles MailingAndEmailSettingsMenuItem.Click
    Dim MailConfig As New MailSettingsWindow()
    MailSettingsWindow.ShowDialog()
End Sub