DOBON.NET DOBON.NETプログラミング掲示板過去ログ

マウスのスクロール

環境/言語:[C#]
分類:[.NET]

マウスホイールによるスクロールは自前で実装しないといけないんでしょうか?
FormのAutoScrollをオンにしてスクロールバーを表示していますが、
ホイールには反応しません。

#VC++ではScrollWindowとか使えば自動で実装してくれたんですが・・・
■No15267に返信(KJさんの記事)
> マウスホイールによるスクロールは自前で実装しないといけないんでしょうか?
> FormのAutoScrollをオンにしてスクロールバーを表示していますが、
> ホイールには反応しません。

ドライバに因るところもあると思いますが、一方向であれば反応しますよ。

.....................................................................
http://jeanne.wankuma.com/
http://blogs.wankuma.com/jeanne/
  • 題名: Re[2]: マウスのスクロール
  • 著者: KJ
  • 日時: 2006/04/10 22:13:30
  • ID: 15280
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2台のPCで試してみました。
アプリは、C#2003, Framwork1.1で作成しています。

PC1: Framwork1.1, エレコムのマウスドライバインストール
PC2: Framwork2.0, デルの標準マウス 

PC1ではOK, PC2ではダメでした。
.NET Framwork2.0のせいではない(と思いたい)ので、ドライバ依存かな。
ドライバ依存なしにホイールスクロールするには、やはり自前で実装でしょうか。
MouseWheelイベントが見当たらないので、WndProc()?やだなぁ。。。
  • 題名: Re[1]: マウスのスクロール
  • 著者: ほりけん
  • 日時: 2006/04/17 12:30:57
  • ID: 15348
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
自分でイベントを追加したら実装できました。

this.MouseWheel +=new MouseEventHandler(Browser_MouseWheel);
初期化部にイベントをセットし、下記の関数を追加する

private void GraphBrowser_MouseWheel(object sender, MouseEventArgs e)
{
if((e.Delta / 120) > 0)
{
}
else
{
}
}

これで、どちらに回転させたかが検出できます。

DOBON.NET | プログラミング道 | プログラミング掲示板