我想在同一级别上更改System.Windows.Forms.TreeNodes的顺序。
关于如何在.net-2.0中做到这一点的任何建议。
发布于 2011-06-02 00:01:35
void MoveNodeUp(TreeNode node)
{
TreeNode parentNode = node.Parent;
int originalIndex = node.Index;
if (node.Index == 0) return;
TreeNode ClonedNode = (TreeNode)node.Clone();
node.Remove();
parentNode.Nodes.Insert(originalIndex - 1, ClonedNode);
parentNode.TreeView.SelectedNode = ClonedNode;
}发布于 2011-06-01 23:38:48
您需要操作TreeView的Nodes集合。参见TreeNodeCollection。
如果您有三个树节点,并且您想要将最后一个节点移到前面,例如:(注意:未测试代码,但显示了想法)
var lastNode = MyTreeView.Nodes[2];
MyTreeView.Nodes.Remove(lastNode);
MyTreeView.Nodes.Insert(0, lastNode);发布于 2014-03-17 01:19:04
这就是我写的:
public void MoveNode(TreeView tv, TreeNode node, bool up)
{
if ((node.PrevNode == null) && up) {
return;
}
if ((node.NextNode == null) && !up) {
return;
}
int newIndex = up ? node.Index - 1 : node.Index + 1;
var nodes = tv.Nodes;
if (node.Parent != null) {
nodes = node.Parent.Nodes;
}
nodes.Remove(node);
nodes.Insert(newIndex, node);
}https://stackoverflow.com/questions/6203193
复制相似问题