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);
winform TreeView树节点上下移动的更多相关文章
- TreeView 树节点的处理
TreeView 树节点的处理 using System; using System.Collections.Generic; using System.ComponentModel; using S ...
- winform treeview 通过节点名称添加子节点
/// <summary> /// 添加人员节点(利用TreeNodeCollection) /// </summary> /// <param name="t ...
- 初始化bootstrap treeview树节点
最近在做启明星图库时,使用了Jquery Bootstrap Treeview插件.但是,遇到了一个初始化的问题.先看效果如下: 当用户打开图库时,左边分类第一个类别是“所有分类”,默认需要选中. ...
- c# winform TreeView NODE(节点) 重命名或获取节点修改后的值
在程序开发过程中我们经常用到treeview,还经常要修改节点的名字.节点名字修改后还想及时更新数据库.这时问题就来了,怎样获取NODE(节点)更新后的值呢?本人试了很多方法最终分析出treeview ...
- Access Treeview树节点代码二
Private Sub Form_Load() '引用C:\windows\system32\MSCOMCTL.OCX,否则提示出错. Dim Rec As New ADODB.Recordset D ...
- Access Treeview树节点代码一
Private Sub TreeView0_Updated(Code As Integer)Dim ndeindex As NodeSet ndeindex = TreeView0.Nodes.Add ...
- winform中生成TreeView树
无论是webform还是winform,TreeView都是常用功能.使用递归方法很方便. 下面分享一个小实例. 数据库中3个字段,分别是:ID,itemType_name,itemType_PID ...
- C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用心得
在网上查了很多,发现没有讲述关于--C#winform菜单权限分配,与菜单同步的treeView树状菜单权限控制使用--的资料 自己研究了一个使用方法.下面来看看. 我有两个窗体:LOGINFRM,M ...
- C#上移,下移TreeView中的树节点顺序
C#上移,下移TreeView中的树节点顺序 2009-08-12 20:10 1494人阅读 评论(2) 收藏 举报 c#buttonobjectnullstring C#中,通过单击上移,下移按钮 ...
随机推荐
- 【poj1226-出现或反转后出现在每个串的最长公共子串】后缀数组
题意:求n个串的最长公共子串,子串出现在一个串中可以是它的反转串出现.总长<=10^4. 题解: 对于每个串,把反转串也连进去.二分长度,分组,判断每个组. #include<cstdio ...
- 利用ES6的Promise.all实现至少请求多长时间
1.背景 我们都知道ajax请求可以加个timeout,就是最多请求多少时间,如果超过这个时间直接就报错. 这个是最多请求多长时间,我现在要做的是,最少要请求多长时间,然后才能执行后续的逻辑. 比如, ...
- react+redux基础用法
在学react的是,发现一旦我们封装好了我们的组件,那么我们的项目就跟搭积木一样简单快速,可是我们发现了一个问题,在一个页面往往会嵌套很多的组件,子组件必须要通过父组件传递参数才能渲染出数据,我们回想 ...
- ThinkPHP 多应用多模块建立方式
ThinkPHP3.2.2及以后版本同一应用多模块和多应用多模块的设计已经比以前的版本更加简单快捷. 注:入口文件为index.php,内容为: <?php // +-------------- ...
- Nexus 5 Change FireFox OS to android
1.Enter Fastboot mode,flash recovery: D:\BaiduYunDownload\recovery>fastboot flash recovery 6.0.4. ...
- js 函数分类2
js 通用监听函数实现 // 把所有方法封装到一个对象里面,充分考虑兼容写法 var EventUtil = { // 添加DOM事件 addEvent: function(element, type ...
- JavaScript获取和操作html的元素
#转载请留言联系 1.获取元素 JavaScript的用途就是为了实现用户交互和网页的大部分动画.所以JavaScript常常需要操作html中的元素.要先操作就要先获取过来.JS有几种途径获取元素, ...
- Appium+python自动化27-android特有的wait_activity【转载】
本篇转自博客:上海-悠悠 前言在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep.那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间 ...
- Photoshop CC 2015
1.Ctrl 加 + -号实现放大缩小2.Ctrl+T 自由变换3.Ctrl+D 取消选区,再选择处理完后想要选中别的区域的话要取消之前选中的区域,要不然之前的区域一直都是选中状态4.F12 将文件恢 ...
- oracle 11g在大表中添加字段及默认值--加速
今天遇到这个问题了.简单的增加语句,默认SQLPLUS执行,却会超时. 要增加客户端的TIMEOUT时间才可以解决.(感觉超过两三分钟,默认超时30秒) 另外, 也可以用两步操作(1,增加字段,2,修 ...