realforce

Gamer Book

土曜日, 5月 06, 2006

C#:マウスホイールの検出


 private void InitializeComponent()
 {
///
/// 省略
///
  // 予め、コントロールにフォーカスを当ててやる必要があるので注意。
  this.MouseEnter += new System.EventHandler(this.Form1_MouseEnter);

  // マウスのホイールを検出するイベントハンドラーを追加する。
  // MouseWheelイベントは、VS.NETのデザイナのイベント一覧に出てこないので、
  // 下記のように手動で追加する必要があります。
  this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseWheel);

  this.ResumeLayout(false);
 }

 private void Form1_MouseEnter(object sender, System.EventArgs e)
 {
  // 今回は必要ないが、パネルやパネル内のコントロールでマウスの
  // ホイールを検出するには、予め、そのコントロールにフォーカスを
  // 当ててやる必要がある。
  // これを忘れるとイベントが起こらないので注意。
  // この事について触れているサンプルが少なく、私もはまった。
  this.Focus();
 }

 private void Form1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
 {
  // Delta はホイールが1回カチッっとなると、+120/-120という値になる。
  // よって、120で割ってあげれば解りやすい値になる。
  this.label1.Text = "ホイール検出: " + (e.Delta / 120)
 }

posted by Xune @ 20:45   links to this post 2 comments

2コメント:

At 2009年3月19日木曜日 23:29:00 JST, Anonymous 匿名 said...

おお!ありがとう!
数字をキーボードで入力していたアプリを、マウスホイール仕様に改造しちゃうのだ。
参考になりました。

サイトー

 
At 2013年10月14日月曜日 23:50:00 JST, Anonymous 匿名 said...

大変参考になりました。
というか、マウスエンターする度に
フォーカスをあげないといけない
レベルとは思いませんでしたw

 

コメントを投稿

この記事へのリンク一覧:

リンクを作成 | バックリンクについて | バックリンク一覧

Previous Posts