Обнаружение DragDrop на элемент TreeView - PullRequest
0 голосов
/ 03 ноября 2011

Я делаю перетаскивание из одного пользовательского элемента управления в другой TreeView. Тем не менее, как я могу обнаружить падение в элемент дерева просмотра? Я могу обнаружить, есть ли падение в TreeView, но это не элемент. Я могу создать событие TreeViewItem.Drop, но это происходит, когда я удаляю Элемент внутри TreeView, а не из другого элемента управления.

Я попытался сфокусировать TreeView, но это не помогло. Я могу обнаружить DragEnter / Leave на TreeView и его элементах, но не падение. Я взглянул на другие темы, в которых, как утверждается, имеется DragOver, чтобы это исправить, но это не сработало.

1 Ответ

1 голос
/ 03 ноября 2011

Попробуйте это:

    private void treeView1_DragDrop(object sender, DragEventArgs e)
    {
        Point DropXY = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
        TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(DropXY);

        MessageBox.Show(DestinationNode.Text);
    }

[EDIT] Примечание. Для свойства TreeView в TreeView должно быть установлено значение true. И вы должны обработать это событие:

private void treeView1_DragOver(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Copy;
}
...