当 "Main" 表单的焦点为真时关闭一个表单
Close one form when the "Main" form's focus is true
我的项目中有两个表单(Form1.vb 屏幕名为 "MainPanel",From2.vb 屏幕名为 "frmTestSelect")。我在 MainPanel 上有一个按钮可以打开 frmTestSelect。 frmTestSelect 比 MainPanel 小得多 screen/form。当两个窗体都打开时,我希望用户能够单击 MainPanel 窗体,从而关闭 frmTestSelect 屏幕。截至目前,当我单击 MainPanel 时,它所做的只是使 MainPanel 成为焦点,但 FrmTestSelect 屏幕在后台保持打开状态。如果 MainPanel 的焦点或其任何对象的焦点为真,我想关闭它。最简单的方法是什么?谢谢。
Dim frmTestSelect As Form2 = Nothing
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
frmTestSelect = New Form2
frmTestSelect.Show()
End Sub
Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
If frmTestSelect IsNot Nothing Then
frmTestSelect.Close()
End If
End Sub
更新: 将 Form1 事件更改为已激活,这样即使单击了 Form1 上的控件,它也会关闭 Form2。
您可以在 MainPanel 中保留对 frmTestSelect 的实时实例的引用(例如在成员变量中),并在 MainPanel 获得焦点时对其调用 .Close()。
如果您将 MainPanel 设为 MDIParent,并将 frmTestSelect 设为 MDIChild(通过指定 .MDIParent = MainPanelInstance),您可以在获得焦点时随时访问 MainPanel 的所有 MDIChildren,并关闭所述子项。
就是说,如果您走 MDIParent 路线,子窗体永远不会 "hidden" 落后于其父窗体。
我的项目中有两个表单(Form1.vb 屏幕名为 "MainPanel",From2.vb 屏幕名为 "frmTestSelect")。我在 MainPanel 上有一个按钮可以打开 frmTestSelect。 frmTestSelect 比 MainPanel 小得多 screen/form。当两个窗体都打开时,我希望用户能够单击 MainPanel 窗体,从而关闭 frmTestSelect 屏幕。截至目前,当我单击 MainPanel 时,它所做的只是使 MainPanel 成为焦点,但 FrmTestSelect 屏幕在后台保持打开状态。如果 MainPanel 的焦点或其任何对象的焦点为真,我想关闭它。最简单的方法是什么?谢谢。
Dim frmTestSelect As Form2 = Nothing
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
frmTestSelect = New Form2
frmTestSelect.Show()
End Sub
Private Sub Form1_Activated(sender As Object, e As EventArgs) Handles Me.Activated
If frmTestSelect IsNot Nothing Then
frmTestSelect.Close()
End If
End Sub
更新: 将 Form1 事件更改为已激活,这样即使单击了 Form1 上的控件,它也会关闭 Form2。
您可以在 MainPanel 中保留对 frmTestSelect 的实时实例的引用(例如在成员变量中),并在 MainPanel 获得焦点时对其调用 .Close()。
如果您将 MainPanel 设为 MDIParent,并将 frmTestSelect 设为 MDIChild(通过指定 .MDIParent = MainPanelInstance),您可以在获得焦点时随时访问 MainPanel 的所有 MDIChildren,并关闭所述子项。
就是说,如果您走 MDIParent 路线,子窗体永远不会 "hidden" 落后于其父窗体。