- ベストアンサー
MenuStripにてキーイベントの取得
VisualStudio2008-VisualBasicを使用しています。 MenuStripを使用し、上部にメニュー(Ex:ファイル)をつくり、ファイル内に 終了を追加します。 ファイルをクリックした状態(終了のメニューが見えている状態)で、 Shitt+X等のキー同時押しをした場合に、Exeを終了させたいのですが、 これはVBで可能な処理でしょうか? IEでファイルメニューを開いた状態でShift+Cを押すことで、IE自体が終了しますが、 それと同じ動きを実現したいのです。 何かヒント等あればご教授願います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
プロパティでショートカットを登録できないでしょうか メニューを表示させてXなどの一文字で実行でしたら Textに終了(&X)と入力してください。
その他の回答 (3)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
> IEでファイルメニューを開いた状態でShift+Cを押すことで、IE自体が終了… と、ありますが、Shiftは不要です。ファイルメニューを表示した状態で「C」を押すだけで「閉じる」が実行されます。この時点で、質問者がキーボードアクセラレータの使い方を勘違いされているのではないでしょうか。 だとすれば、#1さんの回答で解決できると思います。 重複しますが、キーボードアクセラレータの設定は、メニューアイテムのTextプロパティで行います。アクセラレータに使用したい文字の前に「&」を付けてください。 「閉じる」を「X」で動作させたい場合は「閉じる(&X)」と書くだけでコードは必要ありません。
お礼
Wizard_Zero様 回答ありがとうございます。 質問内容が不明慮で申し訳ありませんでした。 キーボードアクセラレータの存在を忘れ、 キーイベント取得でなんとかしようと勘違いしておりました。 Shiftに関しても私の勘違いです。 言われている通り、Textに設定しただけで実現したい動作をしてくれました。
- kazuhisa01
- ベストアンサー率32% (158/487)
.NET Framework version 2.0 が適用されているなら ToolStripMenuItem.ShortcutKeys で実行できそうな気がしましたがVB2005で試したところShift+XがプロパティのValueを超えているというエラーが出て使用できませんでした。 .NET Framework version 3.0 以降に機能拡張されていれば使えたりするかもしれません。 http://msdn.microsoft.com/ja-jp/library/system.windows.forms.toolstripmenuitem.shortcutkeys%28VS.80%29.aspx
お礼
kazuhisa01様 回答ありがとうございます。 テキストに設定することで解決できました。 その後、私もShortcutKeysについて調べてみたところ、 まずはメニューの親(ファイル)というべき部分に設定しないと、 子(ファイル内の終了)には設定が出来ないようでした。
- kmetu
- ベストアンサー率41% (562/1346)
No1は勘違いしていました無視してください。
お礼
kmetu様 回答ありがとうございます。 質問内容が不明慮で申し訳ありませんでした。 キーボードアクセラレータという機能を完全に失念していました。 Textに言われたとおりに設定することで、思ったとおりの動作をしてくれました。