- PR -

C# TreeViewコントロールでドラック中にマウスカーソルの位置を取得 

1
投稿者投稿内容
katsuo
会議室デビュー日: 2006/03/22
投稿数: 2
投稿日時: 2006-11-01 19:26
開発にはVS2005 Express Editionを使用していますが、
Nodeをドラック中にエクスプローラの様にマウスカーソルの位置と連動して、
Nodeをセレクトしたいのですが、なぜかMouseMoveイベントがおきません。

WinProcをオーバーライドしてみましたがWM_MOUSEMOVEがきませんでした。

どのようにすればドラック中にマウスカーソルの位置を取得できるのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-11-01 19:51
引用:

katsuoさんの書き込み (2006-11-01 19:26) より:

開発にはVS2005 Express Editionを使用していますが、Nodeをドラック中にエクスプローラの様にマウスカーソルの位置と連動して、Nodeをセレクトしたいのですが、なぜかMouseMoveイベントがおきません。


QueryContinueDrag イベントでどうでしょうか?
(DragOver イベントでも良いと思いますが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
katsuo
会議室デビュー日: 2006/03/22
投稿数: 2
投稿日時: 2006-11-06 16:14
じゃんぬねっとさんありがとうございます。
DragOver イベントで、ドラック中にマウスカーソルと連動したノードの選択できました。
-----------------------

public XTreeView() {

this.AllowDrop = true;
this.DragOver += new System.Windows.Forms.DragEventHandler(this.XTree_DragOver);
}




private void XTree_DragOver(object sender, DragEventArgs e)
{
TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(PointToClient(Cursor.Position));

if (DestinationNode != null)
{
//マウスが上にきたらNodeItemをセレクトする
((TreeView)sender).SelectedNode = DestinationNode;

}
}

[ メッセージ編集済み 編集者: katsuo 編集日時 2006-11-06 16:15 ]
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2006-11-06 21:46
引用:

katsuoさんの書き込み (2006-11-06 16:14) より:
private void XTree_DragOver(object sender, DragEventArgs e)
{
TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(PointToClient(Cursor.Position));


細かいことで申し訳ないのですが、
DragEventArgs にマウスの座標が格納されているプロパティが存在します。
そちらを使用したほうが正確な座標を取得できるかもしれません。
1

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