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 

它工作。