需求:TreeView树节点上移下移
实现方案:
1.用到节点的PrevNode属性,获取上一个同级树节点。
2.用到节点的NextNode属性,获取下一个同级树节点。
/// <summary>
/// 选中节点上移方法
/// </summary>
/// <param name="node"></param>
private void SetTreeNodeUp(object sender, EventArgs e)
{
TreeNode node = this.tvPrjInfo.SelectedNode;
if ((node == null) || (node.PrevNode) == null)
return;
TreeNode newNode = (TreeNode)node.Clone();
//节点的移动
if (node.Parent != null)
node.Parent.Nodes.Insert(node.PrevNode.Index, newNode);
else
node.TreeView.Nodes.Insert(node.PrevNode.Index, newNode);
node.TreeView.SelectedNode = newNode;
node.TreeView.Nodes.Remove(node);
}
/// <summary>
/// 选中节点下移方法
/// </summary>
/// <param name="node"></param>
private void SetTreeNodeDown(object sender, EventArgs e)
{
TreeNode node = this.treeView1.SelectedNode;
if ((node == null) || (node.NextNode) == null) return;
TreeNode newNode = (TreeNode)node.Clone();
//节点的移动
if (node.Parent != null)
node.Parent.Nodes.Insert(node.NextNode.Index+1,newNode);
else
node.TreeView.Nodes.Insert(node.NextNode.Index+1, newNode);
node.TreeView.SelectedNode = newNode;
node.TreeView.Nodes.Remove(node);
}
#endregion