У меня мало знаний о древовидной структуре. Я хочу, чтобы можно было перемещать узел дерева вверх и перемещать узел дерева.Перемещение TreeNode вверх, вверх, вниз и вниз C#
-Fruits -Apples -Oranges -Bananas -Watermelon
Ниже приведен код, я пытаюсь реализовать.
Во-первых, я перемещаю арбуз на верх, он отлично работает. Затем, когда я попытаюсь продвинуться вверх по бананам, индекс бананов покажет -1. Есть ли что-то еще, что я делаю неправильно?
private void moveTopToolStripMenuItem_Click(object sender, EventArgs e)
{
TreeNode tv = new TreeNode();
TreeNode selectedNodeToMove = new TreeNode();
try
{
TreeNode parent = treeView.SelectedNode.Parent;
selectedNodeToMove = treeView.SelectedNode;
if (parent != null)
{
parent.Nodes.Remove(treeView.SelectedNode);
parent.Nodes[0] = selectedNodeToMove;
}
}
catch (Exception ex)
{
}
}
private void moveUpToolStripMenuItem_Click(object sender, EventArgs e)
{
TreeNode tv = new TreeNode();
TreeNode selectedNodeToMove = new TreeNode();
try
{
TreeNode parent = treeView.SelectedNode.Parent;
selectedNodeToMove = treeView.SelectedNode;
if (parent != null)
{
int index = parent.Nodes.IndexOf(treeView.SelectedNode);
if (index > 0)
{
tv = parent.Nodes[index - 1];
parent.Nodes.Remove(treeView.SelectedNode);
parent.Nodes.Remove(tv);
parent.Nodes.Insert(index - 1, selectedNodeToMove);
parent.Nodes.Insert(index, tv);
}
}
}
catch (Exception ex)
{
}
}