/// <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);

转载于:https://www.cnblogs.com/51net/p/4238065.html

winform TreeView树节点上下移动相关推荐

  1. wpf展开树节点_WPF中展开一个TreeView控件的所有树节点

    在 Windows Form 应用中,我们碰到需要展开一个TreeView 控件的所有树节点的时候很简单,微软已经替我们提供了ExpandAll 方法,我们只要简单的一行代码tv_QTree.Expa ...

  2. C# winform TreeView 屏蔽双击展开/折叠子节点

    一搜索这个基本都是一样的通过事件来处理 思路: 1.通过点击事件,记录点击的节点信息(是否为双击了节点的bounds,是的话在第二步cancel掉) 2.通过BeforeExpand.BeforeCo ...

  3. 将DataTable中的数据,根据节点的子父节点的Tag。展示到TreeView树状控件中。

    //移除所有分类tvBookType.Nodes.Clear();try{dt = BookTypeServices.GetBookType();}catch (Exception ex){Messa ...

  4. C# WinForm TreeView用法总结

    TreeView用法值得总结一下,今天用到了,一时忘了怎样执行选中节点事件. private void BindTreeView() {     treeView1.LabelEdit = false ...

  5. 数据库表TreeView树的快速生成

    数据库表TreeView树的快速生成 根据数据表的内容生成TreeView树状结构,通常的做法就是从顶级开始,然后逐项递归查询遍历生成.这种方法在实现上容易做到,也很容易想到,但是效率比较低,因为数据 ...

  6. C#中TreeView树配图片

    先上效果: 这是一个TreeView控件的效果. 控件的用法就不多说了,具体参考: http://msdn.microsoft.com/zh-cn/library/vstudio/system.win ...

  7. C#winform TreeView编程

    TreeView右键菜单从数据库中读取,插入,删除,查找(高亮显示并展开),编辑(即地编辑)的例子  这个项目包括二个文件,分别为From1.cs and FormCommon.cs,一个配置文件Ap ...

  8. 解决TreeView的节点更改NodeFont后无法完全显示节点名的问题

    今天做树视图显示数据的时候,准备把树视图中第一级节点设成小四号粗体,第二级节点设成五号字体. 在代码中更改Node的字体字号以后,发现节点名的后半部分显示不出来 node.NodeFont = new ...

  9. 小程序实现TreeView树多选功能

    话不多说,先上效果图: 小程序实现Treeview树多选功能 实现思路 源数据结构 首先我们的数据结构大概是: [{"id": "0","name&q ...

最新文章

  1. 微信跳一跳高分辅助踩坑
  2. TCP/IP详解--学习笔记(1)-基本概念
  3. MIMIC 以太坊医疗项目开发(1) Express Web Server介绍
  4. mysql 数据库编程_MySQL数据库编程(C++语言)
  5. django 中间件的使用
  6. 如何删除一个VDP服务器
  7. 如何禁用Web表单字段/输入标签上的浏览器自动完成功能?
  8. Spring Boot Web简介
  9. C语言C++编程软件推荐及下载方式
  10. Classics Sentence Excerpt
  11. 打怪升级,看俄罗斯小哥是如何从互联网转行到自动驾驶行业?
  12. 厦门大学计算机学院李平,学术盛会,知行合一 ——2020年厦门大学信息学院计算机科学系研究生学术论坛圆满举办...
  13. 马斯克,神!仅花11天强吞推特,全新商业帝国拼图完成
  14. termux安装docker
  15. c语言do循环函数,C语言do-while循环
  16. scikit-learn机器学习 读书笔记(二)
  17. git bush如何上传文件
  18. 联想超级本Win8系统重新安装Win7系统的心路历程
  19. 计算机领域中主频是什么,计算机有多种技术指标其中主频是指
  20. python getA()

热门文章

  1. oracle数据库存储ip地址,oracle – 以十进制形式存储的IP地址 – PL / SQL以虚线四边形显示...
  2. JavaScript高级之ECMAScript 6 新特性
  3. LeetCode 1229. 安排会议日程(双指针)
  4. LeetCode MySQL 580. 统计各专业学生人数
  5. 快速排序quicksort算法细节优化(一次申请内存/无额外内存排序)
  6. 策略模式java 用例_java策略模式简单用例
  7. tar linux 举例,linux 的tar 命令详解举例
  8. Python判断变量是否存在的方法
  9. 幻侠修仙服务器维护,幻侠修仙常见问题_幻侠修仙问答_疑难解答_九游手机游戏...
  10. 中文验证码 php_还在苦恼验证码怎么实现?看看这个验证码组件合集,你想要的都有...