none
MouseDownイベントハンドラーの中で、Shiftキーを見るには RRS feed

  • 質問

  • MouseDownイベントハンドラーの中で、Shiftキーが押されて
    いるかどうかを判断するにはどうしたら良いでしょうか。

     

    2010年12月13日 5:11

回答

  • Control.ModifierKeysで判断できます。

    Control.ModifierKeys プロパティ (System.Windows.Forms)


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/
    • 回答としてマーク クサキ 2010年12月13日 7:41
    2010年12月13日 5:34
  • ModifierKeys プロパティは、Control クラスの静的プロパティです。
    なので、「クラス名.プロパティ名」という書き方になります。

    ModifierKeysは、プロパティを参照したちょうどその時に、キーボードのキーが押されているかどうかが取得できます。
    どのコントロールがフォーカスを持っているかは関係ないです。
    もし MouseDown イベントハンドラの呼び出しが遅延した場合は、厳密には正確に判定できないことになりますが、私はそこまで考えないようにしてます。
    • 回答としてマーク クサキ 2010年12月14日 0:12
    2010年12月13日 9:08

すべての返信

  • Control.ModifierKeysで判断できます。

    Control.ModifierKeys プロパティ (System.Windows.Forms)


    Blog:プログラマーな日々 http://d.hatena.ne.jp/JHashimoto/
    • 回答としてマーク クサキ 2010年12月13日 7:41
    2010年12月13日 5:34
  • ありがとうございました。上手くできるようになりました。

     

    2010年12月13日 7:41
  • 追加の質問です。

    Control.ModifierKeys は文法的にどういうことですか?
    関数ではなく、プロパティのように思えますが、
    Contorlはクラス名で、文法的には、具体的なコントロールを
    指していないと思うのですが、実際には動いていますので指しているようです。

     

     

    2010年12月13日 8:16
  • ModifierKeys プロパティは、Control クラスの静的プロパティです。
    なので、「クラス名.プロパティ名」という書き方になります。

    ModifierKeysは、プロパティを参照したちょうどその時に、キーボードのキーが押されているかどうかが取得できます。
    どのコントロールがフォーカスを持っているかは関係ないです。
    もし MouseDown イベントハンドラの呼び出しが遅延した場合は、厳密には正確に判定できないことになりますが、私はそこまで考えないようにしてます。
    • 回答としてマーク クサキ 2010年12月14日 0:12
    2010年12月13日 9:08
  • 勉強になりました。ありがとうございました。

     

    2010年12月14日 0:12