如何关闭子表单

时间:2012-10-20 09:44:15

标签: vb.net winforms

使用MDI和子表单

代码。

childform_load

Me.MdiParent = MDIMain

 Private Sub form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
     If e.KeyCode = Keys.Escape Then
         Me.Close()
     End If
 End Sub

以上代码适用于MDI表单(表单名称为mdiform1),但不适用于子form1,当我按下转义键时,它正在关闭MDI表单而不是子表单。

我也检查了子表单名称,名称只是form1。

问题是什么,我需要更改子表单的任何属性。

需要代码帮助

3 个答案:

答案 0 :(得分:3)

这对我有用

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.Escape Then
            For Each child As Form In Me.MdiParent.MdiChildren
                child.Close()
            Next child
        End If
    End Sub

答案 1 :(得分:0)

每当您尝试触发Child表单事件时,它会触发父表单“form1_KeyDown”事件。

答案 2 :(得分:0)

这似乎是因为表单的(键预览)属性。 因此,尝试在MDIMain表单中设置Key preview False,并在子表单中将其设置为true。