使用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。
问题是什么,我需要更改子表单的任何属性。
需要代码帮助
答案 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。