KeyDown 事件键不起作用 - VB.net

KeyDown Event Key Not Work - VB.net

KeyDown 事件不起作用,按退出键不会关闭表单

Private Sub DataTable_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode = Keys.Escape Then
        Me.Close()
    End If
End Sub

好吧,肯定行得通,只是事件不太像火。击键在具有焦点的控件上引发 KeyDown 事件。只有当它没有可以获取焦点的控件时,它才会成为您的表单。一个不太可能发生的情况。

如果您已经有一个标签为 "Cancel" 的关闭表单的按钮,请设置表单的 CancelButton property

如果您没有这样的按钮,那么用户将不太可能自己发现 Escape 键有用。他很可能会使用右上角的关闭按钮。尽管如此,您仍然可以通过覆盖 ProcessCmdKey() 方法使其工作。像这样:

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
    If keyData = Keys.Escape Then
        Me.Close()
        Return True
    End If
    Return MyBase.ProcessCmdKey(msg, keyData)
End Function