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

Panelにフォーカスが無い時でもMouseWheelイベントを取得したい

分類:[.NET]

メインフォーム上に設置したPanelに丸や四角のグラフィックを表示しています。
メインフォーム上にはパラメータ入力用にテキストボックスも配置しています。

グラフィック部分の拡大縮小をMouseWheelで行いたいのですが
テキストボックスに入力フォーカスがある時にはWheelのイベントを
取得することができません。

HELPではフォーカスがある場合にMouseWheelを検知できると書いてあるのですが
フォーカスが無い場合でも検知する方法ってあるのでしょうか?

何か分かる方がいらっしゃれば情報よろしくお願いいたします。

※OSはXPで.NET2003 C# です。
> グラフィック部分の拡大縮小をMouseWheelで行いたいのですが
> テキストボックスに入力フォーカスがある時にはWheelのイベントを
> 取得することができません。

テキストボックスのMouseWheelイベントも処理すればよいのではないでしょうか。
> テキストボックスのMouseWheelイベントも処理すればよいのではないでしょうか。

回答ありがとうございます。
Panel以外の位置ではWheelの取得する必要はないんです。
(説明不足ですみません)

Panel上にマウスがある時にだけイベントを取得したいのですがフォーカスが
無いと取得できないようでpanelのMouseEnterでフォーカスを移してみたのですが
何らかの拍子で(TABなどのキー)でフォーカスが移ってしまうとWheelが効かなくなってしまいます。

フォーカスを持っていなくてもPanel上にマウスがあればWheelイベントを
取得できる方法などがあれば有難いです。
一応解決しました。

Panelを設置したメインフォームのMouseWheelイベントを取得し
そのイベント内でマウス位置がPanelコントロール内であれば
処理を実行するようにしたところ思い通りの処理が出来るようになりました。

メインフォームのMouseWheelがフォーカスに関係なく
取得できたので助かりました。

読んで下さった方、回答くださったよねKEN様
ありがとうございました。
解決済み!

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