要实现Image dragging,重点是在拖动开始时产生拖动节点的图像,then move this image as mouse cursor moves over the TreeView control. 可以由API函数实现,为了调用这些函数,a class DragHelper that accesses them via P/Invoke.
http://www.codeproject.com/KB/tree/TreeViewDragDrop.aspx
原文补充:
1.一般只需要在ItemDrag,DragOver,DragDrop三个事件中实现即可满足需要
2.在ItemDrag事件里修改
if (DragHelper.ImageList_BeginDrag(this.imageListDrag.Handle, 0, -15, -15))
会使产生的图像向光标的右下方平移一些位置,效果更好些
3.在DragOver事件里修改
DragHelper.ImageList_DragMove(e.X, e.Y);
这里是窗口转换会产生的问题,视情况不同进行修改,否则会找不到拖放图片!