如何将快捷键(如Ctrl + F)分配给Windows窗体中的文本框?
我正在使用C#构建一个工具。 这是一个Windows应用程序。 我在表单上有一个文本框,当用户按下Ctrl + F或Ctrl + 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中捕获快捷键 。
添加一个事件,在表单上按下按键,分析按键,看它是否与您的某个快捷键匹配,然后分配焦点。