Windows Forms: выделение целевого узла в TreeView во время перетаскивания - PullRequest
1 голос
/ 22 июля 2010

Я создал механизм Drag & Drop для своего TreeView. Я добавил методы DragEnter, DragDrop и ItemDrag, и все работает отлично.

Но когда вы выполняете D & D со стандартными элементами управления Windows, целевой узел подсвечивается. Изображение стоит 1000 слов, видео, вероятно, даже больше: http://www.youtube.com/watch?v=PlltSiihHPo

Я имею в виду такой эффект выделения, который вы можете увидеть в этом видео на Корзине.

1 Ответ

1 голос
/ 22 июля 2010

Это не TreeView, это ListView с View = LargeIcons. 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;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...