winform TreeView树节点上下移动
/// <summary> /// 上移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsbMoveUp_Click(object sender, EventArgs e) { if (Tv_tree.SelectedNode == null) { MessageBox.Show("请选择需要移动的的节点!"); this.Focus(); return; } folder model = new folder(); TreeNode node = Tv_tree.SelectedNode; //获得选中节点的值 model.folderId = node.Tag.ToString(); model.TheOrder = node.Name.ToString(); if (node.PrevNode == null) //选中节点的上一个节点为Null则返回 { return; } folder upModel = new folder(); TreeNode upNode = node.PrevNode; //获得选中节点的上一个节点 upModel.folderId = upNode.Tag.ToString(); upModel.TheOrder = upNode.Name; bool flag = folderOperation.MoveUp(model, upModel); //将两个节点的排序编号互换 if (flag) //如果执行成功 { string theOrder = node.Name; node.Name = upNode.Name; upNode.Name = theOrder; TreeNode newNode = (TreeNode)node.Clone(); //克隆选中的节点 if (node.Parent == null) { Tv_tree.Nodes.Insert(upNode.Index, newNode); //在选中节点的上一个节点的地方插入本节点 } else { node.Parent.Nodes.Insert(upNode.Index, newNode); } node.Remove(); Tv_tree.SelectedNode = newNode; } else { return; } } /// <summary> /// 下移 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tsbMoveDown_Click(object sender, EventArgs e) { if (Tv_tree.SelectedNode == null) { MessageBox.Show("请选择需要移动的的节点!"); this.Focus(); return; } folder model = new folder(); TreeNode node = Tv_tree.SelectedNode; //选中的节点 model.folderId = node.Tag.ToString(); model.TheOrder = node.Name.ToString(); if (node.NextNode == null) //下一个节点为Null时返回 { return; } folder downModel = new folder(); TreeNode dowNode = node.NextNode; downModel.folderId = dowNode.Tag.ToString(); downModel.TheOrder = dowNode.Name; bool flag = folderOperation.MoveUp(model, downModel); if (flag) { string theOrder = node.Name; node.Name = dowNode.Name; dowNode.Name = theOrder; TreeNode newNode = (TreeNode)dowNode.Clone(); //克隆下一个节点及其所有的子节点 if (node.Parent == null) { Tv_tree.Nodes.Insert(node.Index, newNode); //在原节点的位置插入下一个节点的值 } else { node.Parent.Nodes.Insert(node.Index, newNode); } dowNode.Remove(); //删除掉选中节点的下一个节点 Tv_tree.SelectedNode = node; //重新选中 } else { return; } } string sql = string.Format("update folder set theorder = '{0}' where folderid = '{1}'", model.TheOrder, upModel.folderId); string sql1 = string.Format("update folder set theorder = '{0}' where folderid = '{1}'", upModel.TheOrder, model.folderId);
作者:阿笨
【官方QQ一群:跟着阿笨一起玩NET(已满)】:422315558
【官方QQ二群:跟着阿笨一起玩C#(已满)】:574187616
【官方QQ三群:跟着阿笨一起玩ASP.NET(已满)】:967920586
【官方QQ四群:Asp.Net Core跨平台技术开发(可加入)】:829227829
【官方QQ五群:.NET Core跨平台开发技术(可加入)】:647639415
【网易云课堂】:https://study.163.com/provider/2544628/index.htm?share=2&shareId=2544628
【腾讯课堂】:https://abennet.ke.qq.com
【51CTO学院】:https://edu.51cto.com/sd/66c64
【微信公众号】:微信搜索:跟着阿笨一起玩NET