vb.net 方向键不能触发 keydown 事件

2025-03-26 09:52:12
推荐回答(2个)
回答1:

某些键,如 Tab、Return、Esc 和箭头键,由控件自动处理。所以当你的窗体添加了其它控件如按钮,checkbox等,form的keydown事件就触发不了,为使这些键引发窗体的KeyDown事件,你需要重写form.ProcessDialogKey函数,这个函数可以在消息预处理期间 处理对话字符,例如TAB、RETURN、ESCAPE和箭头键等,以下是我重写了这个事件来处理方向键,你需要把它放到你的代码里:
Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean

If keyData = Keys.Left Or keyData = Keys.Right Or keyData = Keys.Up Or keyData = Keys.Down Then
Return False'如果是方向键返回FALSE,意思是继续执行form的keydown事件.

Else
Return MyBase.ProcessDialogKey(keyData)

End If

End Function

回答2:

,form的keydown事件就触发不了,为使这些键引发窗体的KeyDown事件