• ベストアンサー

【C#】 : WindowsProgramming ショートカットを無効にしたい

掲題の通り、既存のショートカットを無効にさせたいのですが、方法がわかりません。現在、Windowsのフォームに複数ボタンがあり、そのそれぞれにショートカットキーが割り当てられています。それらすべてのショートカットキーを無効にさせたいです。 問題に至った経緯---------------------------------------------- ボタンのダブルクリックを抑止するため、ボタン押下時、btn.Enabled = false にしています。ですがこれだけでは、クライアントからショートカットキーで複数リクエストを送る事が可能です。 そのため、ボタンのショートカットキーを無効にさせる処理を追加したいのですが、方法がわかりません。 -------------------------------------------------------------- ご存知の方、ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.1

ProcessCmdKey()メソッドを使ってみては? @IT > Insider.NET > .NET TIPS > Windowsアプリケーションでキー処理が行われる順序は? http://www.atmarkit.co.jp/fdotnet/dotnettips/243winkeyproc/winkeyproc.html

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • zzz_sheep
  • ベストアンサー率21% (36/166)
回答No.2

全てのボタンのTextプロパティで (&○) みたいな文字列があればそれを消して下さい。 例えば btnOK.Text = "OK(&K)" としていた場合、 Alt+Kでショートカットが実行されてしまいます。 この場合、(&K)の部分を消せばAlt+Kは動かなくなります。 MenuStripのtoolStripMenuItemでも上記と同様です。 toolStripMenuItemの場合、ShortcutKeysが割り当てられ、 なおかつClickイベント等を実装している場合などでもショートカットが動きます。 この場合はShortcutKeysをNoneに設定して下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ボタンの有効と無効

    アクションスクリプトの初心者です。 いつも、お世話になっております。 ページtopにA,B,C,D四つのボタンがあります。 各ボタンを押すと、ページA、ページB、ページC、ページDへジャンプします。 ボタンAとB両方を押す前には、ボタンCとDは無効です。 AS2.0です。 流れはこうです。 最初Topページは、A,Bボタンは有効、C,Dボタンは無効の状態。 A(B)ボタンを押下→ページA(B)へジャンプ→戻るボタンを押下→Topページへ戻る。→B(A)ボタンを押下→ページB(A)へジャンプ→戻るボタンを押下→Topページへ戻る。→C,Dボタンが有効になり、押下すると各ページへジャンプする。 大元に以下のように書きましたが、なぜかうまくいきません。 どうぞご教授のほどよろしくお願いします。 btnA.onRelease=function(){ gotoAndStop(pageA);//ページAへジャンプ a = 1; } btnB.onRelease=function(){      gotoAndStop(pageB);//ページBへジャンプ b = 1; } if(0==a+b){ btnC.enabled = false; btnD.enabled = false; }else if(2==a+b){ btnC.enabled = true; btnD.enabled = true; }

    • ベストアンサー
    • Flash
  • forを使ってまとめたいのですが

    いつも、ありがとうございます。WinXP Flash8です。 forを使って40個のボタンへの _root.pB.btn_1.enabled = false; _root.pB.btn_2.enabled = false; _root.pB.btn_3.enabled = false; というスクリプトをまとめようと思いましたがうまくいきません。 for (i = 1; i <= 40; i++) { _root["pB.btn_" + i].enabled = false; } としていますが、何がぬけているかご指摘ください。 pBの前に.が必要でしょうか? それでも、うまくいかなかったのですが??? よろしく、お願いします。

    • ベストアンサー
    • Flash
  • どれか1つでもチェックされていたら無効にする

    VB2010 7 Pro SP1 8つのチェックボックスと4つのラジオボタンがあり、チェックボックスにどれか1つでも チェックが入っていたらラジオボタンを無効にし、チェックが全部外れたら ラジオボタンを有効にしたいです。 下記のようなifで出来るかと思ったのですが、フォーム、ラジオボタン、チェックボックス どれに記述しても動きません。 どこに記述すればいいでしょうか? If CheckBox1.Checked Or CheckBox2.Checked Or CheckBox3.Checked Or CheckBox4.Checked Or CheckBox5.Checked Or CheckBox6.Checked Or CheckBox7.Checked Or CheckBox8.Checked Then RadioButton4.Enabled = False RadioButton6.Enabled = False RadioButton7.Enabled = False RadioButton8.Enabled = False Else RadioButton4.Enabled = True RadioButton6.Enabled = True RadioButton7.Enabled = True RadioButton8.Enabled = True End If

  • モジュールでボタン操作

    VB2005を使っています。 フォームにあるボタン10個のどれかのボタンを4回(1回使うとEnabled = falseになる)押すと全部のボタンが押せなくなる。 このようにしたくて、モジュールに10個のボタン全部を押せなくする関数を作りました。 Public Sub clickNg() Form.btn0.Enabled = False ・ ・ ・       Form.btn9.Enabled = False End Sub これでできていました。 しかし、新しくフォームを作ると何故か動作しなくなってしまいました。ブレークポイントで関数の動きをしらべているんですが、ちゃんと全部の工程を一通り通っています。 いったいどうしたら直るのでしょうか? 回答お願いします<(_ _)>

  • ショートカットが無効に。フォトショ、ペインター

    フォトショップでも、ペインターでも、使用中に一度日本語入力を使ってしまうと、その後、半角英数に戻しても、ショートカットキーが無効になります。現象としては、画面上に文字が入力される状態になり、ショートカットととして反応しないのです。 解決方法をご存知のかた、どうぞよろしくお願いします。

  • ボタンの無効化

    いつもお世話になっております。 _rootにおかれたボタンを無効化したいのですがうまくいきません。 これは_rootのフレームに記述しています。 this.pb1.onPress = function() {   trace("test");   this.pb1.enabled = false; }; この書き方になにか問題があるのでしょうか? どうかご指導よろしくお願いいたします。

  • 移動位置が狂ってしまう

    いつもお世話になります。 「ボタンの有効と無効」及び「左右ボタンで方向切替」を合体させてアクションスクリプトを記述しました。ボタンが1個の時に、falseとtrueで有効・無効を教えていただきました。 次にボタンを2個とした場合、右ボタンを押し、即座に左ボタンを押すとやはり移動位置が狂ってしまいます。私にとっては行数が増え、どのように対処すればいいのかわかりません。 教えてください。 //クラスのインポート import mx.transitions.Tween; import mx.transitions.easing.*; //画像1枚の横幅を設定 var g_w:Number = 120; //画像の枚数を設定 var g_n:Number = 7; //カウンタ用変数 var cnt:Number = 0; //「L_btn」を非表示にしておく L_btn._visible = false; //「R_btn(→ボタン)」クリック時の動作を定義 R_btn.onRelease = function():Void { //もしカウンタが 画像の枚数-1 未満であれば (cnt<g_n-1) { var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, my_mc._x-g_w, 3, true); //bt1のボタン機能を無効にする R_btn.enabled = false; //myTweenのモーション終了時に実行するメソッドを定義 myTween.onMotionFinished = function() { //ボタン機能を有効にする R_btn.enabled = true; } //L_btnを表示する L_btn._visible = true; //なおかつカウンタが 画像の枚数-2になれば if (cnt == g_n-2) { //R_btnを非表示にする R_btn._visible = false; } //カウンタに1を加算 cnt++; } } //L_btnクリック時の動作を定義 L_btn.onRelease = function():Void { //もしカウンタが 0 より大きい場合は if (cnt>0) { var myTween = new Tween(my_mc, "_x", Regular.easeOut, my_mc._x, my_mc._x+g_w, 3, true); //bt1のボタン機能を無効にする L_btn.enabled = false; //myTweenのモーション終了時に実行するメソッドを定義 myTween.onMotionFinished = function() { //ボタン機能を有効にする L_btn.enabled = true; } //R_btnを表示する R_btn._visible = true; //なおかつカウンタが 1 になれば if (cnt == 1) { //L_btnを非表示にする L_btn._visible = false; } //カウンタから1を減算 cnt--; } };

    • ベストアンサー
    • Flash
  • ボタンの初期化方法について

    Flash MX2004にて、動的に変化するリンクボタンを作成しております。 フレーム読み込み時に、特定のボタンを以下のようなコードで、enabled=false、色を灰色などにして、非アクティブ状態に設定する ことはできました。  obj_btn.enabled = false;  myBtn = new Color(obj_btn);  myBtn.setRGB(0xBDBDBD); //灰色 今度は、これを、以下の様なコードで元に戻そうとしているのですが、 もともとボタンに設定してあった、Mouse Over,DownなどのActionが発生しません。  obj_btn.enabled = true;  myBtn = new Color(obj_btn);  myBtn.setRGB(000000);//黒色 ボタンをもとの状態に初期化出来れば、良いと思うのですが、 どうしてもその方法が見つかりません。そもそも可能なことなのか も含めて、皆様方のお知恵を拝借いたしたく。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • evernoteのショートカットキーを無効にする

    evernoteのショートカットキーを無効にする方法を知りたいです。 Macです。 具体的には Ctrl+⌘+V クリップボードの内容をノートするショートカットなのですが ClipMenuのショートカットとかぶってしまい面倒です。 よろしくお願いします。

    • ベストアンサー
    • Mac
  • ショートカットキーが無効化される?

    Windows7で、いくつかのショートカットキーを設定しています。具体例としては、スタートボタンの「アクセサリ」にある「メモ帳」に、「Ctrl」+「F3」を設定しています。手順は、「メモ帳」を右クリック→プロパティ→「ショートカット」タブ で、「ショートカットキー(K:)」を「Ctrl+F3」として「OK」。 別に、Dドライブに作ってあるフォルダーのショートカットアイコンをデスクトップに作成、これを右クリック→プロパティ→「ショートカット」タブ で、「ショートカットキー(K:)」を「Ctrl+Alt+F1」として「OK」。同様に、他にも数件設定してあります。 これらは、設定したキーを押すことで、ファイルやフォルダーが開かれます。 ところが、パソコンを終了(電源を切る)して、再度起動させると、これらのキー設定が無効化されてしまいます(キーを押しても無反応)。いったん、上述のプロパティで「ショートカットキー(K:)」を「なし」にして「OK」、再度キー設定すると有効に働きます(「なし」で「適用」、そのあとキー設定で「適用」では効果ありません。「なし」→「OK」でいったんプロパティを閉じることが必要です)。 しかし、パソコンを終了→再度新規起動(もしくはパソコンを再起動)すると、また無効化されてしまいます。 なお、ショートカットのアイコンが消えたりすることはありません。 以上が現在の状況です。改善方法についてのご教示をいただければ幸いです。