У меня мало знаний о представлении дерева. Я хочу иметь возможность перемещать узел дерева вверх и перемещаться вверх по узлу дерева.
-Фрукты -Яблоки -Апельсины -Бананы -Арбузы
Ниже приведен код, который я пытаюсь реализовать.
Во-первых, я перемещаю арбуз наверх, все работает нормально. Затем, когда я попытаюсь продвинуться вверх по бананам, индекс бананов покажет -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)
{
}
}