0

使用 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),但不适用于子表单 1,当我按下退出键时,它正在关闭 MDI 表单而不是子表单。

我还检查了子表单名称,名称仅为 form1。

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

需要代码帮助

4

3 回答 3

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
于 2012-10-20T09:48:21.067 回答
0

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

于 2012-10-20T09:46:21.903 回答
0

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

于 2016-10-12T01:32:34.223 回答