Windows窗体:在Drag& Drop期间突出显示TreeView中的目标节点

时间:2010-07-22 18:33:20

标签: c# winforms

我为TreeView创建了Drag& Drop机制。我添加了DragEnter,DragDrop和ItemDrag方法,一切正常。

但是当您使用标准Windows控件进行D& D时,目标节点会突出显示。 图像值1000字,视频可能更多: http://www.youtube.com/watch?v=PlltSiihHPo

我的意思是你可以在这个关于回收站的视频中看到这样的高亮效果。

1 个答案:

答案 0 :(得分:1)

这不是TreeView,它是一个带有View = LargeIcons的ListView。 TreeView作为放置目标不是一个很好的控件,因为它隐藏了子节点。但是您可以通过实现DragOver事件来解决这两个问题。测试鼠标所在的位置并展开并选择节点:

    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;
        }
    }