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

 

时间: 2024-10-13 22:02:50

winform TreeView树节点上下移动的相关文章

c# winform treeView从access导入树节点问题,求大神修改代码!!

问题描述 privatevoidMain_Load(objectsender,EventArgse){//打开后导入treeViewDataTabledt=OleHelp.ExecuteDataSet(OleHelp.ConnectionStringLocalTransaction,CommandType.Text,"select*fromTBL_Groups",null).Tables[0];filltree(treeView1.Nodes[0],dt,0);}///<summ

treeview-能通过TreeView的右键菜单得到树节点对象吗?

问题描述 能通过TreeView的右键菜单得到树节点对象吗? TreeView控件通过以下片断触发右键菜单: if(document.all) { ie5menu.className = menuskin; document.getElementById('tvBusinessArchives').oncontextmenu = showmenuie5; document.body.onclick = hidemenuie5; } 其中:tvBusinessArchives是TreeView控件

【winform】如何在textbox里显示所选树节点的sql数据信息

问题描述 [winform]如何在textbox里显示所选树节点的sql数据信息 如上图所示,希望点击相关树节点后,在右侧textbox里显示数据库里存储的信息 解决方案 使用数据绑定,可以百度具体使用方法. 解决方案二: 你是指要显示和这个鸟相关的纲目属之类的信息吗?建议你一个办法,把这些属性放到TreeNode的Tag里.到时候取出来显示就行

asp.net winform TreeView节点中的CheckBox 禁用实例

  发现TreeNode没有相关属性,TreeView中的CheckBox也基本没法控制,于是上网求救,基本上都在说废话,有些大侠竟然连WinForm和WebForm都分不清. 有人说把节点字体颜色设置成灰色,然后:  代码如下 复制代码         private void myTreeView1_BeforeCheck(object sender, TreeViewCancelEventArgs e)         {             if(e.Node.ForeColor==

winform中树和数据库关联操作的例子(C#)

数据|数据库 winform下树和数据库关联操作是很常用的,下面的代码是项目中用到的,从一个表生成树: DataView?dvTree;????????private?void?InitTreeByDataSet(?TreeNodeCollection?nds,?string?parentID,?DataSet?ds?)????????{????????????dvTree?=?new?DataView();????????????????????????TreeNode?tempNode;??

单击树节点在父窗体中打开了几个子窗体,如何做到我选中节点后打开对应的子窗体???

问题描述 单击树节点在父窗体中打开了几个子窗体,如何做到我选中节点后打开对应的子窗体???-节点0---A---B---C选中节点A,弹出FORM1选中节点B,弹出FORM2选中节点C,弹出FORM3我的代码如下,但是只能打开同一下窗体,如何实现点击不同节点后显示相应的窗体呢privatevoidtrwFuncFrame_AfterSelect_1(objectsender,TreeViewEventArgse){System.Stringstr=trwFuncFrame.SelectedNod

treeview删除节点asp.net代码

treeview删除节点asp教程.net代码 private bool isin(treenodecollection tnodes,string s)         {             foreach (treenode td in tnodes)             {                 if (td.name == s) return true;                 if (td.nodes.count > 0)                  

C#怎么用一段字符串替换treeview选定节点的label

问题描述 我现在有一个字符串stringNode2想替换选定树节点的label名字,请问如何编写. 解决方案 解决方案二:完全不明白你想干什么要改节点的文本?还是Name?解决方案三:获取选定节点treeview.SelectedNode修改其Text属性treeview.SelectedNode.Text="New";修改其Name属性treeview.SelectedNode.Name="New";

怎样把修改过节点的treeview的节点信息保存到xml中去

问题描述 我的xml文件是用openfiledialog打开的,我将xml的内容显示在treeview中,现在我设置了右键菜单可以对节点进行修改,怎样点击save按钮可以将修改后的内容保存会原来的xml中..求代码啊,我写了半天还是不行 解决方案 解决方案二:tree其实结构跟xml很类似..树各个节点的ID值对应xml的节点ID,当你操作树节点的时候,就会获取该节点的ID,根据该ID(xpath语法)取得xml节点,剩下的就是编辑节点.保存xml文档.<root><nodeid='1'