Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测到树状视图项目上的拖拽_C#_Wpf_User Interface_Drag And Drop_Treeview - Fatal编程技术网

C# 检测到树状视图项目上的拖拽

C# 检测到树状视图项目上的拖拽,c#,wpf,user-interface,drag-and-drop,treeview,C#,Wpf,User Interface,Drag And Drop,Treeview,我正在将一个用户控件拖放到另一个树视图上。但是,如何检测到树视图项中的拖放?我可以检测到树视图中是否有滴水,但这不是问题所在。我可以执行TreeView Item.Drop事件,但这是用于在TreeView中放置项目,而不是从另一个控件中放置项目 我试着让树视图集中注意力,但是,这并没有解决问题。我可以在树视图上发现DragEnter/Leave及其项目,但无法检测到滴落。我已经看了一些其他的话题,说有一个DragOver可以潜在地解决这个问题,但是没有用。试试这个: private v

我正在将一个用户控件拖放到另一个树视图上。但是,如何检测到树视图项中的拖放?我可以检测到树视图中是否有滴水,但这不是问题所在。我可以执行TreeView Item.Drop事件,但这是用于在TreeView中放置项目,而不是从另一个控件中放置项目

我试着让树视图集中注意力,但是,这并没有解决问题。我可以在树视图上发现DragEnter/Leave及其项目,但无法检测到滴落。我已经看了一些其他的话题,说有一个DragOver可以潜在地解决这个问题,但是没有用。

试试这个:

    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);
    }
[编辑] 注意:必须将TreeView的AllowDrop属性设置为true。 并且,您必须处理此事件:

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

发布一些代码-即使它不起作用,它也会帮助我们回答您需要什么样的代码?这个事件根本就没有被调用过。我有这样一个问题“@Downvoter,你为什么要downvote?这个问题是这个函数(对于树视图)永远不会被调用,事件永远不会被触发。尽管事件被设置为。我想这是因为我从一个不同的用户控件拖动到这个树视图(它不在同一个用户控件中)。我编辑了我的原始答案(我必须添加代码,注释不允许添加)。不幸的是,仅在拖放中执行“e.Effect=DragDropEffects.Copy”不允许在应该的时候调用Drop事件。它可以工作。你一定是做错了什么。为什么不按照其他人的建议发布一些代码?