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

我正在使用C#构建一个工具。 这是一个Windows应用程序。 我在表单上有一个文本框,当用户按下Ctrl + FCtrl + S时,我想将焦点指定给该文本框。

我该怎么做呢?

捕获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事件 – 请参阅如何在Visual Studio .NET中捕获快捷键

添加一个事件,在表单上按下按键,分析按键,看它是否与您的某个快捷键匹配,然后分配焦点。