如何上下移动根节点
上下移动普通节点都可以实现的,如下:
#region 上移下移节点
private void MoveNodesUp(bool bUp) //上移下移函数
{
if (treeView1.SelectedNode != null && treeView1.SelectedNode.Parent != null)
{
TreeNode tn = treeView1.SelectedNode;
int iTotolNodes = tn.Parent.Nodes.Count;//看本级节点一共有多少个
int iNodeIndex = treeView1.SelectedNode.Index;//本节点的Index
TreeNode parentNode = tn.Parent; //父节点
if (iNodeIndex == 0 && bUp)
{
MessageBox.Show( "本节点已经是本级第一个节点了,不可以再上移了 ");
}
else
if (iNodeIndex == iTotolNodes - 1 && !bUp)
{
MessageBox.Show( "本节点已经是本级最后一个节点了,不可以再下移了 ");
}
else
{//移动的节点
iNodeIndex = (bUp ? iNodeIndex - 1 : iNodeIndex + 1);//如果上移就-1
// TreeNode neighborNode = parentNode.Nodes[iNodeIndex];
treeView1.SelectedNode.Remove();
parentNode.Nodes.Insert(iNodeIndex, tn);
//移动之后要修改被其上一个或下一个节点的Dply_NO
treeView1.SelectedNode = tn;
}
}
else
{
MessageBox.Show( "没有选中节点或不可以移动此节点 ");
}
}
那么移动根节点是如何实现的呢(因为它没有父节点,也不知道这个兄弟节点总共有多少个)我的想法是生成一个透明的根节点的根节点,这样可行吗
[解决办法]
什么意思?把树的根节点和某一个子节点交换吗?