Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为Windows窗体中的文本框指定快捷键(如Ctrl+;F)?_C#_Winforms_C# 3.0_Keyboard Shortcuts_Ctrl - Fatal编程技术网

C# 如何为Windows窗体中的文本框指定快捷键(如Ctrl+;F)?

C# 如何为Windows窗体中的文本框指定快捷键(如Ctrl+;F)?,c#,winforms,c#-3.0,keyboard-shortcuts,ctrl,C#,Winforms,C# 3.0,Keyboard Shortcuts,Ctrl,我正在使用C#构建一个工具。这是一个Windows应用程序。我在表单上有一个文本框,当用户按Ctrl+F或Ctrl+S时,我希望将焦点指定给该文本框 如何执行此操作?一种方法是重写ProcessCMDKey事件 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.Control | Keys.S)) { MessageBox.Show

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


如何执行此操作?

一种方法是重写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);
}

编辑:或者,您可以使用按键事件-请参见。

在表单上添加捕捉按键的事件,分析按键并查看其是否与某个快捷键匹配,然后指定焦点。

捕获
按键事件,并在其中放置if语句以检查按下了哪些键

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

首先要确保您的Windows窗体属性为“KeyPreview=true”

第二件事是打开表单事件属性并双击“KeyDown” 及 在事件主体内编写以下代码:-

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

一个选项是将访问密钥分配给带有标签的控件。您可以根据与文本框相关的标签指定快捷方式

将访问密钥分配给带有标签的控件

  • 首先绘制标签,然后绘制另一个控件
  • -或-

    按任意顺序绘制控件,并设置控件的TabIndex属性 标签设置为比另一个控件少一个

  • 将标签的UseMemonic属性设置为true

  • 在标签的文本属性中使用符号(&)为标签指定访问密钥。有关详细信息,请参见创建访问权限 Windows窗体控件的键

  • 资料来源:

    在下图中,如果按ALT+Y,焦点将移到文本框


    我过去常常选择另一种方法,但这更简单+1好的,刚刚添加了更多信息。