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 に答える