F10钥匙没有被抓住
我有一个Windows.Form,并覆盖ProcessCmdKey。 但是,这适用于除F10之外的所有F键。 我正在尝试搜索当我在表单上按F10时未调用ProcessCmdKey的原因。
有人可以告诉我如何找到原因吗?
最诚挚的问候,托马斯
Windows以不同方式对待F10 。 MSDN上的“备注”部分给出了解释
我刚刚在.NET 4上用Windows Forms测试了这段代码,我得到了预期的消息框。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.F10) { MessageBox.Show("F10 Pressed"); return true; } return base.ProcessCmdKey(ref msg, keyData); }
可能是我遇到了你的问题,所以试着猜测:
您是否将WindowsForm的KeyPreview
属性设置为true
?
这将使WindowsForm能够继续按下按键事件,然后再将其转移到在精确时刻保持关注UI的控件。
请告诉我它是否有效。
问候。
在我的情况下,我试图将e.key与system.windows.input.key.F10相匹配并且它不起作用(尽管F1通过F9做了)
Select Case e.Key Case is = Key.F10 ... do some stuff end select
但是,我把它改成了
Select Case e.Key Case is = 156 ... do some stuff end select
它工作。