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
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