private void treeViewDragDrop(DragEventArgs e) { var p = clientPointFrom(e); var targetNode = _treeView.CalcHitInfo(p).Node; var draggedNodes = getDraggedNodesFrom(e); draggedNodes.Each(node => _presenter.MoveNode(node, nodeFrom(targetNode))); e.Effect = DragDropEffects.None; }