我在使用C#捕获键盘事件时遇到问题

时间:2009-06-26 12:04:54

标签: c# winforms

我有一个简单的窗体应用程序,我已经为我的特定任务设置了一个自定义控件,我已经为Form编写了KeyDown Handler,问题是KeyDown处理程序在箭头以外的每个键都正常工作键...控件没有进入键处理程序?为什么会这样?当我删除自定义控件时,它开始正常工作?

3 个答案:

答案 0 :(得分:1)

看看this SO question

是KeyPreview吗? 什么控制有焦点?

答案 1 :(得分:0)

我没有看到表单没有预览箭头键的原因。但无论如何,如果您需要更多低级访问键盘处理(特别是快捷键处理),您可以覆盖表单的 ProcessCmdKey

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Left)
    {
        // your code here
        return true;
    }
    return base.ProcessCmdKey(ref msg, keyData);
}

答案 2 :(得分:0)

您应该将自己集中在代码中的某个位置以正确使用ProcessCmdKey。