2012-04-15 25 views
0

私のプログラムでContextMenuStripを使用していますが、Altキーを押していない限り、そのショートカットキー(ニーモニック、文字の下にアンダーラインとして表示されるもの)を表示しませんでしたが、Altキーを押すとContextMenuStripフォームのメインメニューにフォーカスが掛かるため非表示になります。したがって、コンテキストメニューでは、ニーモニックは決して見られません!メニューにニーモニックを常に表示する方法はありますか?

プログラムでこの動作をオンにする方法はありますか?私は他の場所でシステム設定のどこかでそれを変更することができますが、自分のソフトウェアを使って常にニーモニックを見る人が必要です。プログラムが正常に動作するようにシステムをグローバルに変更する必要はありません。

ユーザーがEnterキーを押したときに、コントロールによって表される値のクイック編集用のポップアップが表示されるため、このメニューをKeyDownイベントハンドラのコードで表示する必要があります。ユーザーはコントロールをクリックし、その内容をすばやく変更できます。あなたがこの正確な場所に挿入できるctrl + spaceヒントの可能性のあるコードスニペットをポップアップすると、C#のように思えます。したがって、コントロールの "コンテキストメニュー"プロパティとして使用するか、キーボード "show context menu"ボタンを使用しないでください。

ありがとうございます!オペレーティングシステムの設定です

+0

これはうまくいくはずです。 トップメニューにニーモニックがあり、Altキー(そのメニューのキー)を押すと、ニーモニックもサブメニューに表示されます。 – Patrick

+0

キーボードでメニューをアクティブにすると、ニーモニックが表示されます。それにはShift + F10キーを使用してください。キーボードのショートカットメニューキーがある場合はそれを使用します。 –

+0

あなたはデザイナの一部としてプロパティウィンドウで見つけることができるショートカットキーのプロパティを考えているかもしれません。これにより、より多くのオプションが得られます(ShiftやCtrlなど)。 – coder

答えて

2

コントロールパネル\すべてのコントロールパネル項目\アクセスセンターやすさ\ \使うことが容易下線のキーボードショートカットとアクセスキー\キーボードショートカットを使用するようにするには、キーボードを容易にします。

+0

はい、私のソフトウェアでそれを上書きする方法があると思います。 – Istrebitel

0

コンテキストメニューの呼び出し方法を変更します。代わりのようなものを使用、手動でそれを表示しない:ユーザーがテキストボックス(またはあなたが使用する他のコントロール)を右クリックすると、この場合

textBoxSomething.ContextMenuStrip = yourContextMenuStrip; 

を、彼はニーモニックせずにメニューを取得します。しかし、キーボードコンテキストメニューボタンを使用してコンテキストメニューを表示すると、ニーモニックが表示されます。

+0

残念ながらそれは可能ではありません(私は手動でメニューを開く必要があります)、たとえそうであっても、どうすれば "コンテキストメニューボタン"を設定するのですか教えてください。オブジェクトプロパティにCMSを割り当てると、右クリックで私のために開くだけです – Istrebitel

+0

あなたが正しいと分かっているかどうかわかりません。コンテキストメニューボタンは、コンテキストメニューを表示するためのキーボード上のボタンです。特別なWinボタンの1つ。何も割り当てる必要はありません。マウスで右クリックしても、キーボードでコマンドを選択したいときは、明らかに問題は解決しません。 – Arek

+0

ああ、私は参照してください。いいえ、ポップアップエディタとしてコンテキストメニューを使用していますので、そのボタンは役に立たなくなります。私のプログラム(その一部)は、 "変数は値と同じ"のような文を編集し、ユーザーは "等しい"をクリックまたは選択して押すと、 "より大きい"および "不等な値"のようなすべての可能なオプトンでメニューがポップアップし、ユーザーの選択。ですから、キーボード上にある「コンテキストメニューボタン」ではなく、クリックまたは入力時に表示する必要があります。 – Istrebitel

関連する問題