- PR -

ListViewでアイテムをドラッグ中のマウス座標

1
投稿者投稿内容
Knuckle
会議室デビュー日: 2006/03/08
投稿数: 2
投稿日時: 2006-03-09 00:04
質問させてください。

ListView(View.Details)でアイテムをドラッグしている最中の
マウスポインタの位置を取得する方法をご教示ください。

的はずれなものもございますが念のため下記のイベントで
取得を試みようと思いましたが、いずれもドラッグしている
マウスポインタを移動させてもそれを追従するようにイベントが
発生せず、逐次マウスの座標を取得できません。
ItemDrag
DragEnter
DragDrop
DragOver
MouseMove

特に、MouseMoveはマウス左ボタンを押したまま移動させるぶんには
取得できるのですが、アイテムをドラッグすると、とたんに無反応に
なります。
ドラッグの開始地点や終了地点だけではなく、ドラッグしている
最中のマウス座標も逐次取得したいのでイベントでの処理かと
思っているのですが、この辺り宜しければご教示いただけたら幸いです。

宜しくお願いします。

環境
Windows XP Pro SP2
VS 2005
C# 2005
.NET FrameWork 2.0

[ メッセージ編集済み 編集者: Knuckle 編集日時 2006-03-09 00:05 ]
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2006-03-09 00:19

QueryContinueDrag イベントはどうでしょ。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-03-09 00:26
引用:

いずれもドラッグしている
マウスポインタを移動させてもそれを追従するようにイベントが
発生せず、逐次マウスの座標を取得できません。
ItemDrag
DragEnter
DragDrop
DragOver
MouseMove


おかしいですね。DragOverでいいはずなんですが。
判定したいコントロールのAllowDropプロパティはTrueになっていますか?
Knuckle
会議室デビュー日: 2006/03/08
投稿数: 2
投稿日時: 2006-03-09 00:41
Hongliang様、まどか様

早いご回答ありがとうございます。
早速検証した結果、お二方がご教示して下さった
QueryContinueDrag
MouseMove
双方のイベントでマウスの座標を取得できました。
検証した結果「マウスの座標を取得する」という処理だけに関しては、

アイテムドラッグ中は、マウスを動かさなくても(静止させていても)
イベントが発生続ける。

といった動作でした。
もちろん、私の求めている処理にはうってつけなので助かりました。

本当にありがとうございました。どうか今後とも宜しくお願いします。


#まどか様のご指摘に関して
どうやら、ここに書き込むまでの検証の過程で
MouseOverイベントの登録とAllowDropプロパティをTrueにする
ということを同時にしていなかったようで、どちらか片方が有効な
状態でやっておりました。ケアレスミスですね。精進します。
1

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