如何将快捷键(如Ctrl + F)分配给Windows窗体中的文本框?

问题描述:

我在用C#构建一个工具。这是一个Windows应用程序。我有一个表格上的一个文本框,我要指派焦点设置到文本框,当用户按下Ctrl键+˚F按Ctrl +小号如何将快捷键(如Ctrl + F)分配给Windows窗体中的文本框?

我该怎么做?

捕获KeyDown事件,并在其中放置if语句以检查按下的键。

private void form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if ((e.Control && e.KeyCode == Keys.F) || (e.Control && e.KeyCode == Keys.S)) { 
     txtSearch.Focus(); 
    } 
} 

一种方法是重写ProcessCMDKey事件。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.Control | Keys.S)) 
    { 
     MessageBox.Show("Do Something"); 
     return true; 
    } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 

编辑:另外,您可以使用keydown事件 - 见How to capture shortcut keys in Visual Studio .NET

+0

我曾经去寻找替代品,但这样更简单! +1 – Joel 2013-08-09 15:49:14

添加一个事件,它捕获窗体上的按键,分析按键并查看它是否与您的某个快捷键相匹配,然后分配焦点。