8

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

例如: Ctrl+ W,O

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

Visual Studio 的很多菜单快捷方式都使用了这种方法。

但是,当我编辑菜单时,我仅限于一个快捷键Ctrl+W或只是O,我无法对它们进行排序。

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

4

1 回答 1

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;
  }
}

需要考虑的事项

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