0

複数のグローバルホットキーを処理するための優れたデザインを考えるのに苦労しています。

3つの異なるグローバルホットキーにバインドされた3つの異なる関数があるとします...

  1. 曲を再生| Ctrl + P
  2. 曲をスキップ| Ctrl + N
  3. 音量を上げる| Ctrl + V

押されたホットキーが特定の機能に準拠しているかどうかを確認するための効果的な方法は何ですか?私はこれに非常によく似たクラスを使用しています:http ://www.liensberger.it/web/blog/?p = 207

ホットキーごとにホットキークラスの新しいインスタンスを作成する必要がありますか?

Hotkey hotkey = new Hotkey();
hotkey.RegisterHotkey(Shortcut.ModifierKeys.Control, Keys.F10);

hotkey.KeyPressed += ((s, args) =>
{
    //Do Something!
});

または、さまざまなホットキー関数を持つ列挙型を用意し、それをホットキークラス内から管理して、複数のインスタンスを防ぐ必要があります(無駄ですが簡単なようです)。事前にアドバイス/ヘルプをありがとう。

4

2 に答える 2

2

ここではコマンド パターンが適していると思われるため、異なる関数ごとにクラスの個別のインスタンスを作成することを選択します。詳細については、このリンクを参照してください。

于 2012-10-13T21:49:34.090 に答える
0

ホットキー クラスを静的にしないのはなぜですか?

 Hotkey.Register(modifier, key, callback)

それらをクラス内のリストに保持しますか?

また、ホットキーに修飾子を追加することをお勧めします。あなたのすべてが共通のタスクに割り当てられています: Control+ P= 印刷、Control+ N= 新規、Control+ V= 貼り付け

于 2012-10-13T21:51:30.387 に答える