菜单的键盘顺序快捷键

Joe*_*oel 8 .net c# keyboard-shortcuts menu visual-studio

我希望我正在开发的程序(在C#.net中)有一个序列快捷方式来访问菜单系统中的各种按钮.

例如: Ctrl+ W,O

首先,用户按Ctrl+ W,然后按O

Visual Studio将这种方法用于其中的一些菜单快捷方式.

然而,当我编辑菜单时,我只限于一个快捷方式Ctrl+ W或只是O,我无法对它们进行排序.

这可能与现有框架有关吗?

Luk*_*ley 2

你可以简单地这样做:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
  if (previousKeyEvent != null)
  {
    if (previousKeyEvent.Modifiers == Keys.Control && previousKeyEvent.KeyCode == Keys.W && e.KeyCode == Keys.O)
    {
      MessageBox.Show("Ctrl + W then O");
    }
    else
    {
      MessageBox.Show("Not handled");
      previousKeyEvent = null;
    }
  else
    previousKeyEvent = e;
  }
}
Run Code Online (Sandbox Code Playgroud)

需要考虑的事项

  • 单键组合 - 处理那些不属于先前按键事件范围的组合。
  • 用于显示您正在等待用户输入的标签,就像 Visual Studio 一样。
  • 使用 ShortCutKeyDisplayString 属性在菜单项旁边显示自定义快捷方式。