- PR -

UltraWinGridの複数行選択とD&Dの区別方法

1
投稿者投稿内容
Bell
会議室デビュー日: 2004/03/09
投稿数: 13
投稿日時: 2004-05-07 17:44
お世話になっています

GrapeCity社のUltraWinGridを使用した開発を行っています。
UltraWinGridから他のUltraWinGridへの複数行のD&Dによるコピーを行おうと考えているのですが、どちらも

1.マウスのボタンを押す
2.マウスのドラッグ
3.マウスのボタンを離す

という動作なのでどの時点で他方へのドラッグ時の操作を行えばいいのかわかりません。
2の状態でカーソルがGridの領域外に出た時、ドラッグ時の操作を行おうとしたのですが、ドラッグ中は領域を出たイベントを受け取れませんでした。

Grid内でのマウスによる複数行の選択と、他のGridへのD&Dを区別する方法はあるのでしょうか?

DataGridではなくUltraWinGridを使っているため少しややこしくなってしまっていると思いますが、よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-07 18:28
 D&Dの時は、マウスボタンを押してしばらく待つ、というのはどうでしょう?
#マウスボタンが押されてから一定時間内のマウスの移動量が一定量以下なら、
#「項目をつかんだ」と判断する。ユーザへは、マウスカーソルを変更することで、
#ドラッグを始めることをフィードバックする。
Bell
会議室デビュー日: 2004/03/09
投稿数: 13
投稿日時: 2004-05-10 12:00
返答遅れてしまい申し訳ありません。
Jitta様、ありがとうございます。

Jitta様の案
引用:

#マウスボタンが押されてから一定時間内のマウスの移動量が一定量以下なら、
#「項目をつかんだ」と判断する。ユーザへは、マウスカーソルを変更することで、
#ドラッグを始めることをフィードバックする。


ということですが、
マウスボタンが押された後の一定時間内のマウスの移動量の取得方法が思いつきません。
MouseDownイベントの座標を保持し、MouseMoveイベント時に比較を行おうとしたのですが、MouseMoveイベントはマウスが動いた時点で何度も発生し、またマウスが移動しない場合はMouseMoveイベント自体が発生せずうまくいきませんでした。

何かほかのイベントで受け取る事ができるのでしょうか
よろしくお願いします
Bell
会議室デビュー日: 2004/03/09
投稿数: 13
投稿日時: 2004-05-11 14:31
Timerコントロールを完全に失念してました。

Sleepを使うということで頭が一杯になっていたようです…
1

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