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);
转载于:https://www.cnblogs.com/51net/p/4238065.html
winform TreeView树节点上下移动相关推荐
- wpf展开树节点_WPF中展开一个TreeView控件的所有树节点
在 Windows Form 应用中,我们碰到需要展开一个TreeView 控件的所有树节点的时候很简单,微软已经替我们提供了ExpandAll 方法,我们只要简单的一行代码tv_QTree.Expa ...
- C# winform TreeView 屏蔽双击展开/折叠子节点
一搜索这个基本都是一样的通过事件来处理 思路: 1.通过点击事件,记录点击的节点信息(是否为双击了节点的bounds,是的话在第二步cancel掉) 2.通过BeforeExpand.BeforeCo ...
- 将DataTable中的数据,根据节点的子父节点的Tag。展示到TreeView树状控件中。
//移除所有分类tvBookType.Nodes.Clear();try{dt = BookTypeServices.GetBookType();}catch (Exception ex){Messa ...
- C# WinForm TreeView用法总结
TreeView用法值得总结一下,今天用到了,一时忘了怎样执行选中节点事件. private void BindTreeView() { treeView1.LabelEdit = false ...
- 数据库表TreeView树的快速生成
数据库表TreeView树的快速生成 根据数据表的内容生成TreeView树状结构,通常的做法就是从顶级开始,然后逐项递归查询遍历生成.这种方法在实现上容易做到,也很容易想到,但是效率比较低,因为数据 ...
- C#中TreeView树配图片
先上效果: 这是一个TreeView控件的效果. 控件的用法就不多说了,具体参考: http://msdn.microsoft.com/zh-cn/library/vstudio/system.win ...
- C#winform TreeView编程
TreeView右键菜单从数据库中读取,插入,删除,查找(高亮显示并展开),编辑(即地编辑)的例子 这个项目包括二个文件,分别为From1.cs and FormCommon.cs,一个配置文件Ap ...
- 解决TreeView的节点更改NodeFont后无法完全显示节点名的问题
今天做树视图显示数据的时候,准备把树视图中第一级节点设成小四号粗体,第二级节点设成五号字体. 在代码中更改Node的字体字号以后,发现节点名的后半部分显示不出来 node.NodeFont = new ...
- 小程序实现TreeView树多选功能
话不多说,先上效果图: 小程序实现Treeview树多选功能 实现思路 源数据结构 首先我们的数据结构大概是: [{"id": "0","name&q ...
最新文章
- 微信跳一跳高分辅助踩坑
- TCP/IP详解--学习笔记(1)-基本概念
- MIMIC 以太坊医疗项目开发(1) Express Web Server介绍
- mysql 数据库编程_MySQL数据库编程(C++语言)
- django 中间件的使用
- 如何删除一个VDP服务器
- 如何禁用Web表单字段/输入标签上的浏览器自动完成功能?
- Spring Boot Web简介
- C语言C++编程软件推荐及下载方式
- Classics Sentence Excerpt
- 打怪升级,看俄罗斯小哥是如何从互联网转行到自动驾驶行业?
- 厦门大学计算机学院李平,学术盛会,知行合一 ——2020年厦门大学信息学院计算机科学系研究生学术论坛圆满举办...
- 马斯克,神!仅花11天强吞推特,全新商业帝国拼图完成
- termux安装docker
- c语言do循环函数,C语言do-while循环
- scikit-learn机器学习 读书笔记(二)
- git bush如何上传文件
- 联想超级本Win8系统重新安装Win7系统的心路历程
- 计算机领域中主频是什么,计算机有多种技术指标其中主频是指
- python getA()
热门文章
- oracle数据库存储ip地址,oracle – 以十进制形式存储的IP地址 – PL / SQL以虚线四边形显示...
- JavaScript高级之ECMAScript 6 新特性
- LeetCode 1229. 安排会议日程(双指针)
- LeetCode MySQL 580. 统计各专业学生人数
- 快速排序quicksort算法细节优化(一次申请内存/无额外内存排序)
- 策略模式java 用例_java策略模式简单用例
- tar linux 举例,linux 的tar 命令详解举例
- Python判断变量是否存在的方法
- 幻侠修仙服务器维护,幻侠修仙常见问题_幻侠修仙问答_疑难解答_九游手机游戏...
- 中文验证码 php_还在苦恼验证码怎么实现?看看这个验证码组件合集,你想要的都有...