Mono を使用して、Mac 上で .net 2 Windows.Forms アプリケーションを実行しようとしています。アプリケーションには、事前定義されたデフォルトがあり、ユーザーが再構成できるすべての機能のキーの組み合わせのショートカットがあります。Form KeyDown イベント ハンドラーは、実行するアクションを検索します。
私の問題は、Modifiers と KeyCode を実際に押されたキーに関連付けることです。Mac 用にマッピングを追加する必要があるかどうかは気にしませんが、少なくとも 3 つの修飾キーが必要です。ただし、Mac の 4 つの修飾子のうち、明らかな結果が得られるものはほとんどないようです。Shift - 期待どおりに動作します Ctrl - 別の KeyCode を報告しますが、正しい修飾子を使用します (たとえば、Ctrl+N には Modifiers = Control と KeyCode 14 = "RButton, Clear" があります)。
Alt - 変更されていない他のキーを報告します (例: Alt+R は KeyCode = 168 = "BrowserRefresh" を返します)
Cmd キーは通常、Windows で Ctrl が使用される場所で使用されると思います。3 つの Mac キーのどれを使用しようとすべきか、だれかアドバイスしてもらえますか? 最も重要なのは、KeyEventArgs を解析して、ベース キーと 3 つのオプションの修飾子を一貫して報告する方法です。
Mono は最新バージョン (1、2 週間前の時点) で、違いがあるとすれば MacBook Air、OS X 10.8.1 です。