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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM