日期:2014-05-18  浏览次数:20754 次

求助,TreeView节点托拽时无法自定义光标
环境:VS2005 C# WinForm
先前已经实现了treeView的节点托拽,就是把一个节点托拽到其它节点上(同一个treeView)。不足之处是托拽时的光标形状太简单了。我现在可以截取被托拽节点的图像并转成Cursor对象,想把它做务托拽时的光标形状。

听说GiveFeedback事件里可以指定光标形状,于是我就给treeView添加了GiveFeedback事件,但不幸的是,在我的托拽操作中,GiveFeedback事件没有被触发。ItemDrag、DragEnter、DragOver、DragDrop 这些事件都可以正常触发。难道这GiveFeedback事件被触发还有什么条件么?

或者有什么其它办法可以实现在托拽treeView节点时自定义光标的目的?

------解决方案--------------------
楼主不错,提出问题,解决问题,解决速度还蛮快。
------解决方案--------------------
楼主说的有错的源码能否提供一个链接让俺学习学习,做过treeview文件夹,还没涉及拖拉节点
------解决方案--------------------
“不足之处是托拽时的光标形状太简单了。我现在可以截取被托拽节点的图像并转成Cursor对象,想把它做务托拽时的光标形状。”

你这样做:
C# code

        private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
        {
           Bitmap b = new Bitmap(imageList.Images[item.ImageKey]);//获取对应的图形
           this.Cursor = new Cursor(b.GetHicon());
        }