分享

C#实现TreeView节点上下左右自由移动

 Cloud书屋 2012-11-23

tvw_List:TreeView控件名称。

btn_Up:上移按钮名称。

btn_Down:下移按钮名称。

btn_Left:左移按钮名称。

btn_Right:右移按钮名称。

private void btn_Up_Click(object sender, EventArgs e) {//上移按钮单击事件
            if (null == tvw_List.SelectedNode) {
                return;
            }

            TreeNode node = tvw_List.SelectedNode;
            TreeNode prevNode = node.PrevNode;

            if (null != prevNode) {
                TreeNode newNode = (TreeNode)node.Clone();

                if (null == node.Parent) {
                    tvw_List.Nodes.Insert(prevNode.Index, newNode);
                } else {
                    node.Parent.Nodes.Insert(prevNode.Index, newNode);
                }

                node.Remove();
                tvw_List.SelectedNode = newNode;
            }
        }

private void btn_Down_Click(object sender, EventArgs e) {//下移按钮单击事件
            if (null == tvw_List.SelectedNode) {
                return;
            }

            TreeNode node = tvw_List.SelectedNode;
            TreeNode nextNode = node.NextNode;

            if (null != nextNode) {
                TreeNode newNode = (TreeNode)node.Clone();

                if (null == node.Parent) {
                    tvw_List.Nodes.Insert(nextNode.Index + 1, newNode);
                } else {
                    node.Parent.Nodes.Insert(nextNode.Index + 1, newNode);
                }

                node.Remove();
                tvw_List.SelectedNode = newNode;
            }
        }

private void btn_Left_Click(object sender, EventArgs e) {//左移按钮单击事件
            if (null == tvw_List.SelectedNode) {
                return;
            }

            TreeNode node = tvw_List.SelectedNode;

            if (null != node.Parent) {
                TreeNode newNode = (TreeNode)node.Clone();

                if (1 == node.Level) {
                    tvw_List.Nodes.Insert(node.Parent.Index + 1, newNode);
                } else {
                    node.Parent.Parent.Nodes.Insert(node.Parent.Index + 1, newNode);
                }

                node.Remove();
                tvw_List.SelectedNode = newNode;
            }
        }

private void btn_Right_Click(object sender, EventArgs e) {//右移按钮单击事件
            if (null == tvw_List.SelectedNode) {
                return;
            }

            TreeNode node = tvw_List.SelectedNode;

             if (null != node.PrevNode) {
                TreeNode newNode = (TreeNode)node.Clone();
                node.PrevNode.Nodes.Insert(node.PrevNode.Nodes.Count, newNode);
                node.Remove();
                tvw_List.SelectedNode = newNode;
            }

        }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多