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事件。只有当它没有可以获取焦点的控件时,它才会成为您的表单。相当不可能的情况。
如果您已经有一个标记为“取消”的按钮来关闭表单,则设置表单的CancelButton属性。
如果您没有这样的按钮,那么用户将不太可能自己发现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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句