开发者

Windows Forms: Highlight destination node in TreeView during Drag&Drop

开发者 https://www.devze.com 2023-01-08 16:41 出处:网络
I created Drag&Drop mechanism for my TreeView. I added DragEnter, DragDrop and ItemDrag methods and everything works fine.

I created Drag&Drop mechanism for my TreeView. I added DragEnter, DragDrop and ItemDrag methods and everything works fine.

But when you are doing D&D with standard Windows controls, destination node is highlighted. Image is worth 1000 words, video probably even more: http://www.youtube.com/watch?v=PlltSiihHPo

I mean such highlight effect like you can see in this video 开发者_运维知识库on Recycle Bin.


That's not a TreeView, it's a ListView with View = LargeIcons. TreeView isn't a great control as a drop target since it hides sub-nodes. But you can solve both problems by implementing the DragOver event. Test where the mouse is at and expand and select the node:

    void treeView1_DragOver(object sender, DragEventArgs e) {
        var pos = treeView1.PointToClient(new Point(e.X, e.Y));
        var hit = treeView1.HitTest(pos);
        if (hit.Node != null) {
            hit.Node.Expand();
            treeView1.SelectedNode = hit.Node;
        }
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消