C# WinForms – DragDrop внутри того же TreeViewControlC#

Место общения программистов C#
Anonymous
C# WinForms – DragDrop внутри того же TreeViewControl

Сообщение Anonymous »

Я пытаюсь реализовать перетаскивание элемента древовидного представления в одном и том же элементе управления.

Я хочу иметь возможность перемещать элемент из одного узла в другой.

Вот мой текущий код. Когда я запускаю его, я вижу, что элемент начал перетаскивание, но значок Windows не позволяет переместить его ни в один узел элемента управления.

Мой текущий код

private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.Move);
}

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

private void treeView1_DragDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(TreeNode)))
{
TreeNode sourceNode = e.Data.GetData(typeof(TreeView)) as TreeNode;

var item = new TreeNode(sourceNode.Text);

System.Drawing.Point pt = ((TreeView)sender).PointToClient(new System.Drawing.Point(e.X, e.Y));
TreeNode DestinationNode = ((TreeView)sender).GetNodeAt(pt);

DestinationNode.Nodes.Add(item);
DestinationNode.Expand();
}
}

Вернуться в «C#»