使用Enter键启动MDI菜单选项会在MDI子窗体中触发KeyUp

时间:2014-03-11 17:51:20

标签: vb.net winforms mdi

使用Visual Studio 2012

为项目添加了一个MDI表单,它创建了一堆默认菜单项,然后为File / Open菜单项添加了以下代码:

Public Class MDIParent1

    Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripMenuItem.Click, OpenToolStripButton.Click
        Dim frm As New Form1
        With frm
            .MdiParent = Me
            .Show()
        End With
    End Sub
End Class

在另一种形式Form1中,设置KeyPreview = True并输入以下代码:

Public Class Form1

     Private Sub Form1_KeyUp(sender As Object, e As KeyEventArgs) Handles Me.KeyUp
        If e.KeyCode = Keys.Enter Then
            MsgBox("enter pressed")
        End If
    End Sub
End Class

现在,如果您启动MDI表单并单击“文件”菜单(或ALT + F),然后使用箭头键向下滚动以打开并按键盘上的Enter键,它将启动Form1但触发KeyUp()。在我的实际应用程序中,这最终会向Form1启动另一个子窗体,我需要从MDI菜单启动中禁止Enter键,但无法弄清楚如何执行此操作。

1 个答案:

答案 0 :(得分:0)

处理KeyPress KeyDown 而不是KeyUp