C#Windows窗体:如何捕获捕获功能,箭头&导航键

时间:2011-03-19 10:19:07

标签: c# visual-studio-2010 special-characters keyevent

我正在尝试捕捉功能键F1到F12& 4箭头钥匙&主页,插入,删除,结束,Page Up&向下键。如何????

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
}

1 个答案:

答案 0 :(得分:1)

重写表单的ProcessCmdKey()方法。在将键盘消息调度到具有焦点的控件之前,它将从消息循环中直接调用。这就是为什么重写WndProc()不起作用。

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
        if (keyData == (Keys.Control | Keys.F)) {
            MessageBox.Show("What the Ctrl+F?");
            return true;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }

从技术上讲,你也可以使用KeyPreview = true覆盖表单的OnKeyDown方法,但这是一个丑陋的VB6时代错误。