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#を使って、マウスのホイールイベントを取得したい方の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。