在C#中添加F5热键

时间:2009-12-26 20:34:53

标签: c# hotkeys

我正在创建一个Windows应用程序(WinForms),并且希望我的应用程序在用户按下F5时调用一个方法 - 无论用户在做什么都应该工作但是他们必须使用该程序 - 我不是想要使用全局钩子 - 任何想法?

3 个答案:

答案 0 :(得分:14)

覆盖主表单上的表单ProcessCmdKey并查找F5。

protected override bool ProcessCmdKey (ref Message msg, Keys keyData)
{
    bool bHandled = false;
    // switch case is the easy way, a hash or map would be better, 
    // but more work to get set up.
    switch (keyData)
    {
        case Keys.F5:
            // do whatever
            bHandled = true;
            break;
    }
    return bHandled;
}

答案 1 :(得分:4)

查看Form.KeyPreview属性,它允许您在表单级别捕获所有KeyDownKeyUpKeyPress事件,然后再允许个别处理元件。

MSDN Form.KeyPreview page

答案 2 :(得分:3)

如果您只有一个可以拥有焦点的表单,则可以将该表单的KeyPreview属性设置为true并处理KeyPress事件。

KeyPreview属性将使表单接收所有按键,无论表单上的哪个控件具有输入焦点。