single.php

C#でマウスのホイールイベントを追加する方法

C#で「Windows フォーム アプリ」を作る場合にフォームの背景を透明(透過)にする方法について備忘録的に投稿します。

マウスのホイールイベント

最近では、ほとんどのマウスに付いているホイール(左右のボタンの間に前後に回転する機構)で縦スクロールをしている人も多いと思います。

このホイールのイベントをアプリケーションで取得します。

C#で、クリックやダブルクリックなどのイベントを追加する、プロパティのイベント画面を確認しても、ホイールに関係した項目はありません。

実際にはホイールイベントは次の様に手動でコードを追加する必要があります。

Formのコンストラクターに相当する部分に、こんな感じで[MouseEventHandler]を追加します。

public Form1()
{
  InitializeComponent();
  this.mainImage.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.my_MouseWheel);
}

実際のイベント部分を、こんな感じで実装します。(名前 my_MouseWheel は変更できます)

private void my_MouseWheel(object sender, MouseEventArgs e)
{
  //マウスのホイールが動いた場合にイベントが発生する
}

ホイールの前後は e.Delta で捕捉

ホイールが、どちらかに廻されたかは、引数を使って e.Delta の値で判定できます。

例えば、こんな感じでホイールの回転方向で処理を分けることができます。

private void my_MouseWheel(object sender, MouseEventArgs e)
{
  //マウスのホイールが動いた場合にイベントが発生する

  if(e.Delta < 0)
  {
    //ホイールが前に回転
  }
  else
  {
    //ホイールが後ろに回転
  }  
}

まとめ

「Windows フォーム アプリ」のフォームでマウスのホイールイベントを追加するには[Click]や[DoubleClick]イベントのように、IDEのプロパティ画面ではなくコード部分に直接記載して追加する必要があります。

また、引数の MouseEventArgs `を使ってホイールの回転方向を取得できます。

C#を使って、マウスのホイールイベントを取得したい方の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です