- PR -

コントロール上のマウスイベントをフォームでハンドルする方法

1
投稿者投稿内容
モンモン
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 2005-12-06 14:56
こんにちはモンモンです。

Windowsフォームに各種コントロールを配置して、Windowsアプリケーションを作成しています。

そこでWindowsフォーム上でフォームに配置されたコントロールを含む、
すべてのマウスイベントを一元的にハンドリングしたいと考えました。

キー入力はフォームのKeyPreview属性をtrueに設定することで、
同様のことが可能でしたが、マウスの場合は良い方法はないでしょうか?

ハンドリングしたいイベントは次のようなものです。

MouseDown,MouseEnter

先輩方教えて下さい。お願いいたします。


[ メッセージ編集済み 編集者: モンモン 編集日時 2005-12-06 14:58 ]
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2005-12-06 15:42
ForEach でぐるぐる回しながら
イベントハンドラに関連付けを行うのはどうでしょう

For Each clt As Control In Me.Controls
AddHandler clt.MouseDown, AddressOf MouseDownHandler
Next
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2005-12-06 17:20
Application.AddMessageFilterを使えばよろしいかと。
その際PreFilterMessageで自分が持っているかどうかはthis.Contains(Control.FromHandle(m.HWnd))とかすれば分かります。


この質問、前に見たなと思ったので検索したら、

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25032&forum=7

ありますね。
モンモン
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 2005-12-07 00:16
かるあさん、yaさん
早速のご回答ありがとうございます。

そのものズバリの質問があったのですね。
私の調査不足でした。すみません。

大変参考になりましたので、
うまく実装できそうです。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)