private void TreeView_DragOver(object sender, DragEventArgs e) { TreeView tree = (TreeView)sender; Point targetPoint = tree.PointToClient(new Point(e.X, e.Y)); TreeNode targetNode = tree.GetNodeAt(targetPoint); DragDropInformation info = (DragDropInformation)e.Data.GetData(typeof(DragDropInformation)); if (info == null) { return; } TreeViewDragDropHelper.ImageList_DragMove(targetPoint.X, targetPoint.Y); //TreeViewDragDropHelper.ImageList_DragMove(e.X, e.Y); TreeNode sourceNode = info.SourceNode; if (info.Client.IsDropAllowed(sourceNode, targetNode)) { TreeViewDragDropHelper.ImageList_DragShowNolock(false); tree.SelectedNode = targetNode; e.Effect = e.AllowedEffect; TreeViewDragDropHelper.ImageList_DragShowNolock(true); } else { TreeViewDragDropHelper.ImageList_DragShowNolock(false); tree.SelectedNode = sourceNode; e.Effect = DragDropEffects.None; TreeViewDragDropHelper.ImageList_DragShowNolock(true); } }
private void TreeView_DragDrop(object sender, DragEventArgs e) { //this.ScrollTimer.Enabled = false; TreeView tree = (TreeView)sender; Point targetPoint = tree.PointToClient(new Point(e.X, e.Y)); TreeNode targetNode = tree.GetNodeAt(targetPoint); DragDropInformation info = (DragDropInformation)e.Data.GetData(typeof(DragDropInformation)); if (info == null) { return; } TreeNode sourceNode = info.SourceNode; if (info.Client.IsDropAllowed(sourceNode, targetNode)) { info.Client.CompleteDrop(sourceNode, targetNode); } }