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#中,通过单击上移,下移按钮 ...
随机推荐
- BZOJ1037 DP
2013-11-15 21:51 原题传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1037 拿到这道题想到了DP,后来发现三维无法确定的表示状 ...
- java 获取当前应用程序路径
package javaapplication1; import javax.swing.JOptionPane; /** * * @author Administrator */ public cl ...
- elasticsearch.helpers.ScanError: Scroll request has only succeeded on xx shards
# 当index=''为空时出现此错误
- django unresolved template
参考:https://stackoverflow.com/questions/8487410/pycharm-django-1-3-static-url-in-templates-unresolved ...
- Swift, Playgrounds, and XCPlayground
http://www.codeschool.com/blog/2014/12/12/swift-playgrounds-xcplayground/ Swift, Playgrounds, and XC ...
- HDU3664 Permutation Counting
Permutation Counting Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Linux调试介绍
1. 介绍 本文介绍了调试的一些常用函数和工具 2. 函数 用户态函数: backtrace()/backtrace_symbols() 内核态函数: dump_stack() 3. 工具 工具: g ...
- socket中的函数遇见EINTR的处理【转】
转自:http://blog.chinaunix.net/uid-21501855-id-4490453.html 这几天,写服务器代码过程当中,遇见EINRT信号的问题,我是借鉴 <unp & ...
- linux coredump测试
1 )如何生成 coredump 文件 ? 登陆 LINUX 服务器,任意位置键入 echo "ulimit -c 1024" >> /etc/profile 退出 L ...
- 用java实现word转html
由于项目需要,要完成将上传的word文件转成html文件的功能.在网上搜了一下,大致有3种方法:1.用jacob实现 2.用poi实现 3.用openoffice实现. 从网上来看好像jacob用的人 ...