(теперь я зареганный)
Вобщем у меня задача реализовать перемещение узлов вверх/вниз
я сделал это вот так для кнопки "Вверх"
private void Up_button_Click(object sender, System.EventArgs e)
{
int n=treeView1.SelectedNode.Index;
if(n!=0)//может двигаться выше уже некуда
{
TreeNode node = treeView1.SelectedNode;
if(n!=node.Parent.GetNodeCount(false)-1)//для последнего узла нужно использовать другой метод
{
TreeNode pnode=treeView1.SelectedNode.PrevNode;
node.Remove();
pnode.Remove();
treeView1.SelectedNode.Parent.Nodes.Insert(n-1,pnode);
treeView1.SelectedNode.Parent.Nodes.Insert(n-1,node);
treeView1.SelectedNode=node;
}
else //если узел самый последний
{
TreeNode pnode=treeView1.SelectedNode.PrevNode;
pnode.Remove();
treeView1.SelectedNode.Parent.Nodes.Add(pnode);
}
}
}
всё работает. но неужели нельзя сделать это как-то... по нормальному?