精华内容
下载资源
问答
  • ASP.Net Treeview删除一级节点 问题背景:需要根据权限隐藏菜单,即删除一级节点 代码详情: treeViewMenu.Nodes.Remove(treeViewMenu.Nodes[2]); 解释:treeview对象.Nodes.Remove(你要删除的一级节点) 运行结果:...

    ASP.Net Treeview删除一级节点

    问题背景:需要根据权限隐藏菜单,即删除一级节点
    代码详情:

    treeViewMenu.Nodes.Remove(treeViewMenu.Nodes[2]);
    

    解释:treeview对象.Nodes.Remove(你要删除的一级节点)
    运行结果:
    1.非管理员权限不显示用户管理
    在这里插入图片描述
    2.管理员显示用户管理模块
    在这里插入图片描述

    展开全文
  • 2.保证无毒 3.简单,方便,实用 4.实例可以自行改用 5.如有非法,本人无法律责任,由改动代码人负责! 6.需要更多本人作品,查找标签“朱建强” 7.请下载,杀毒后再使用!
  • TreeView添加、删除、修改节点的实现

    热门讨论 2012-12-11 14:52:25
    treeView实现添加、删除、修改节点
  • VB.net 跨窗口控制treeview控件的增加、删除节点操作 小例子 子节点添加操作: 主界面.TreeView1.Nodes.Item(0).Nodes.Add(TextBox7.Text)'添加子节点操作 子节点删除操作: 主界面.TreeView1.Nodes.Item(0)....

    VB.net 跨窗口控制treeview控件的增加、删除子节点操作 小例子
    子节点添加操作:

    主界面.TreeView1.Nodes.Item(0).Nodes.Add(TextBox7.Text)'添加子节点操作
    

    子节点删除操作:

    主界面.TreeView1.Nodes.Item(0).Nodes.Item(i).Remove()
    

    跨窗口实现:
    在treeview名称前加上想要控制的窗口的名称,此例中我想控制的是名称为“主界面”的窗口中名为“treeview1”的TreeView控件

    展开全文
  • 实现树的节点增加、删除、拖拽、修改节点名等
  • 参考(AddNode: http://blog.csdn.net/qq_25628235/article/details/51719917,deleteNode:...Bootstrap treeview增加或者删除节点  功能说明:展开节点时,新增子节点。选中节点时,删除节点 第一...

    参考(AddNode: http://blog.csdn.net/qq_25628235/article/details/51719917,deleteNode:http://blog.csdn.net/u012718733/article/details/53288584

    Bootstrap treeview增加或者删除节点 

    功能说明:展开节点时,新增子节点。选中节点时,删除节点

    第一步:在bootstrap-treeview.js文件中,在Tree主函数return {/*在这里添加addNode的入口*/ 和 {/*在这里添加deleteNode的入口*/}  

     //添加节点
                addNode: $.proxy(this.addNode, this),
                //删除节点
                deleteNode: $.proxy(this.deleteNode, this),
                setDeleteNode: $.proxy(this.setDeleteNode, this),
    View Code

    第二步:添加Tree的prototype方法

    Tree.prototype.addNode = function(identifiers, options) {
            this.forEachIdentifier(identifiers,options,
                $.proxy(function(node, options) {
                        this.setAddNode(node, options);
                    },
                    this));
    
            this.setInitialStates({ nodes: this.tree }, 0);
            this.render();
        }
    
        Tree.prototype.setAddNode = function(node, options) {
            if (node.nodes == null) node.nodes = [];
            if (options.node) {
                node.nodes.push(options.node);
            };
        };
    
        Tree.prototype.deleteNode = function (identifiers, options) {
            this.forEachIdentifier(identifiers, options, $.proxy(function (node, options) {
                var parentNode = this.getParent(node);
                this.setDeleteNode(parentNode, node, options);
            }, this));
        };
    
        Tree.prototype.setDeleteNode = function (node, deletenode, options) {
            if (node.nodes != null) {
                for (var i = node.nodes.length - 1; i >= 0; i--) {
                    var mynode = node.nodes[i];
                    if (mynode.id === deletenode.id) {
                        node.nodes.splice(i, 1);
                    }
                }
                this.setInitialStates({ nodes: this.tree }, 0);
                this.render();
            }
        };
    View Code

    第三步 调用

    <div id="tree1"></div>

     Json数据

     1  function getTree() {
     2             var data = [
     3                 {
     4                     text: "p1",
     5                     id: '0',
     6                     nodes: [
     7                         { text: "p1-1", id: '1' },
     8                         { text: "p1-2", id: '2' },
     9                         { text: "p1-3", id: '3' },
    10                         {
    11                             text: "p1-4",
    12                             id: '4',
    13                             nodes: [
    14                                 {
    15                                     text: 'p1-1-1',
    16                                     id: '5'
    17                                 }
    18                             ]
    19                         }
    20                     ]
    21                 }
    22             ];
    23             return data;
    24         }
    View Code

    绑定Treeview

     1 $("#tree1")
     2                         .treeview({
     3                             data: getTree(),
     4                             showIcon: false,
     5                             showCheckbox: true,
     6                             onhoverColor: "#E8E8E8",
     7                             showBorder: false,
     8                             showTags: true,
     9                             highlightSelected: true,
    10                             highlightSearchResults: false,
    11                             selectedBackColor: "#8D9CAA",
    12                             levels: 2,
    13                             onNodeSelected: function(event, data) {
    14                                 alert(data.nodeId);
    15                                 if (data.nodes === undefined || data.nodes === null) {
    16                                     return;
    17                                 }
    18                                 $("#tree1").treeview("deleteNode", [data.nodeId, { silent: true }]);
    19                                 //nodeData是checkedNode或者selectedNode,选中或者checked这个节点, 该节点如果有父节点的话就会被删除。
    20                             },
    21                             onNodeExpanded:
    22                                 function(event, data) {
    23                                         $.ajax({
    24                                             type: "Post",
    25                                             url: "/Bootstrap/GetExpandJson?id=" + data.id,
    26                                             dataType: "json",
    27                                             success: function (result) {
    28                                                 for (var index = 0; index < result.length; index++) {
    29                                                     var item = result[index];
    30                                                     $("#tree1")
    31                                                         .treeview("addNode",
    32                                                         [
    33                                                             data.nodeId,
    34                                                             { node: { text: item.text, id: item.id }, silent: true }
    35                                                         ]);
    36                                                 }
    37                                             }
    38                                         });
    39                                 }
    40                         });
    View Code

     

    展开全文
  • vb.net中treeview节点的添加和删除
  • _bootstrap treeView 如何追加节点_? 看了api和其他demo没发现有增加节点的方法
  • TreeView基本操作及其多级节点操作,TreeView浏览磁盘目录

    TreeView 节点操作:

    先选择某一节点:
    添加子节点:
                TreeNode temp = new TreeNode("name");
                treeView1.Name = "name";
                treeView1.SelectedNode.Nodes.Add(temp);
    添加平级节点:
                TreeNode temp = new TreeNode("tree2");
                treeView1.SelectedNode.Parent.Nodes.Add(temp);
    编辑节点:
                treeView1.SelectedNode.Text = "NewName";
                treeView1.SelectedNode.Name = "NewName";
    删除节点:
                treeView1.SelectedNode.Remove();
    展开节点:
        treeView1.SelectedNode.ExpandAll();
    折叠节点:
                treeView1.SelectedNode.Toggle();

    TreeView浏览磁盘目录:

    *引用System.IO命名空间。

    *重写OnLoad事件,调用Directory.GetLogicalDrives()函数索引此计算机上逻辑驱动器名称。

    *添加treeView控件,在treeView上添加驱动盘。

    protected override void OnLoad(EventArgs e)
    {
                TreeNode computer = treeView1.Nodes.Add("计算机");
                foreach (var item in Directory.GetLogicalDrives())
                {
                    computer.Nodes.Add(item);
                }
    }
    
    private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
    {
                foreach (TreeNode node in e.Node.Nodes)
                {
                    if (node.Nodes.Count == 0)
                    {
                        string path = node.FullPath.Remove(0, 4);
                        DirectoryInfo dir = new DirectoryInfo(path);
                        try
                        {
                            foreach (var folder in dir.GetDirectories())
                            {
                                node.Nodes.Add(folder.Name);
                            }
                        }
                        catch (Exception)
                        {
                            continue;
                        }
                    }
                }
    }

    TreeView操作代码:

    /// <summary>
    /// Treeview添加一级节点
    /// TreeV:TreeVie TeamName:一级节点名称
    /// </summary>
    public static void TreeViewAddTeam(TreeView TreeV, string TeamName)
    {
    
        TreeNode newnode = new TreeNode(TeamName);
    
        newnode.Name = TeamName;
    
        newnode.Text = TeamName;
    
        //newnode.ContextMenuStrip = MenuStripTeam;
    
        TreeV.Nodes.Add(TeamName);
    
        TreeV.Nodes[TeamName].Expand();//展开TreeView节点
    
    }
    
     
    
    /// <summary>
    /// Treeview添加二级节点
    /// TreeV:TreeVie node1:一级节点名称 newNode:二级节点名称
    /// </summary>
    public static void TreeViewAddTeam(TreeView TreeV, string node1, string newNode)
    {
    
        ContextMenuStrip MenuStripTeam = new ContextMenuStrip();
    
        MenuStripTeam.Text = "newNode";
    
        TreeNode newnode = new TreeNode(newNode);
    
        newnode.Name = newNode;
    
        newnode.Text = newNode;
    
        newnode.ContextMenuStrip = MenuStripTeam;
    
        TreeV.Nodes[node1].Nodes.Add(newnode);
    
        TreeV.Nodes[node1].Expand();//展开TreeView节点
    
    }
    
     
    
    /// <summary>
    /// Treeview添加二级节点
    /// TreeV:TreeVie  index:一级节点索引 newNode:二级节点名称
    /// </summary>
    public static void TreeViewAddTeam(TreeView TreeV, int index, string newNode)
    {
    
        ContextMenuStrip MenuStripTeam = new ContextMenuStrip();
    
        MenuStripTeam.Text = "newNode";
    
        TreeNode newnode = new TreeNode(newNode);
    
        newnode.Name = newNode;
    
        newnode.Text = newNode;
    
        newnode.ContextMenuStrip = MenuStripTeam;
    
        TreeV.Nodes[index].Nodes.Add(newnode);
    
        TreeV.Nodes[index].Expand();//展开TreeView节点
    
    }
    
     
    
    /// <summary>
    /// Treeview在二级节点中添加三级节点
    /// index:一级节点索引 node2:二级节点名称 newNode:三级节点名称
    /// </summary>
    /// <param name="TeamName"></param>
    /// <param name="MachineName"></param>
    public static void TreeViewAddMachines(TreeView TreeV, int index, string node2, string node3)
    {
    
        TreeNode newnode = new TreeNode(node3);
    
        newnode.Tag = node3.Clone();
    
        newnode.Name = node3;
    
        TreeV.Nodes[index].Nodes[node2].Nodes.Add(newnode);
    
        TreeV.Nodes[index].Nodes[node2].Expand();
    
    }
    
     
    
    /// <summary>
    /// Treeview在二级节点中添加三级节点
    /// node1:一级节点名称 node2:二级节点名称 newNode:三级节点名称
    /// </summary>
    /// <param name="TeamName"></param>
    /// <param name="MachineName"></param>
    public static void TreeViewAddMachines(TreeView TreeV, string node1, string node2, string node3)
    {
    
        TreeNode newnode = new TreeNode(node3);
    
        newnode.Tag = node3.Clone();
    
        newnode.Name = node3;
    
        TreeV.Nodes[node1].Nodes[node2].Nodes.Add(newnode);
    
        TreeV.Nodes[node1].Nodes[node2].Expand();
    
    }
    
     
    
    /// <summary>
    /// Treeview选中一级节点中添加节点
    /// TreeV:TreeVie index:一级节点索引 text:节点名称
    /// </summary>
    /// <param name="newNode"></param>
    public static void TreeViewAddNodes(TreeView TreeV, int index, string text)
    {
    
        TreeNode node = new TreeNode(text);
    
        node.Tag = text.Clone();
    
        node.Name = text;
    
        TreeV.Nodes[TreeV.SelectedNode.Name].Nodes.Add(node);
    
        TreeV.Nodes[index].Expand();//展开tree,TreeName TreeView的节点名称
    
    }
    
     
    
    /// <summary>
    /// Treeview选中一级节点中添加节点
    /// TreeV:TreeVie node1:一级节点名称 text:节点名称
    /// </summary>
    /// <param name="newNode"></param>
    public static void TreeViewAddNodes(TreeView TreeV, string node1, string text)
    {
    
        TreeNode node = new TreeNode(text);
    
        node.Tag = text.Clone();
    
        node.Name = text;
    
        TreeV.Nodes[TreeV.SelectedNode.Name].Nodes.Add(node);
    
        TreeV.Nodes[node1].Expand();//展开tree,TreeName TreeView的节点名称
    
    }
    
     
    
    /// <summary>
    /// 根据索引清除一级节点
    /// TreeV:TreeView index:一级节点索引  
    /// </summary>
    /// <param name="node"></param>
    public static void TreeViewDelNode(TreeView TreeV, int index)
    {
    
        TreeV.Nodes[index].Remove();
    
    }
    
     
    
    /// <summary>
    /// 根据名称清除一级节点
    /// TreeV:TreeView node1:一级节点名称  
    /// </summary>
    /// <param name="node"></param>
    public static void TreeViewDelNode(TreeView TreeV, string node1)
    {
    
        TreeV.Nodes[node1].Remove();
    
    }
    
     
    
    /// <summary>
    /// 根据索引清除二级节点
    /// TreeV:TreeView index:一级节点索引    node2:二级节点名称
    /// </summary
    /// <param name="node"></param>
    public static void TreeViewDelNode(TreeView TreeV, int index, string node2)
    {
    
        TreeV.Nodes[index].Nodes[node2].Remove();
    
    }
    
     
    
    /// <summary>
    /// 根据名称清除二级节点
    /// TreeV:TreeView inode1:一级节点名称     node2:二级节点名称
    /// </summary>
    /// <param name="node"></param>
    public static void TreeViewDelNode(TreeView TreeV, string node1, string node2)
    {
    
        TreeV.Nodes[node1].Nodes[node2].Remove();
    
    }
    
     
    
    /// <summary>
    /// 根据索引清除三级节点
    /// TreeV:TreeView index:一级节点索引   node2:二级节点名称  node3:三级节点名称
    /// </summary>
    /// <param name="node"></param>
    public static void TreeViewDelNode(TreeView TreeV, int index, string node2, string node3)
    {
    
        TreeV.Nodes[index].Nodes[node2].Nodes[node3].Remove();
    
    }
    
     
    
    /// <summary>
    /// 根据名称清除三级节点
    /// TreeV:TreeView inode1:一级节点名称   node2:二级节点名称  node3:三级节点名称
    /// </summary>
    /// <param name="node"></param>
    public static void TreeViewDelNode(TreeView TreeV, string node1, string node2, string node3)
    {
    
        TreeV.Nodes[node1].Nodes[node2].Nodes[node3].Remove();
    
    }
    
     
    
    /// <summary>
    /// TreeView删除选中Node
    /// </summary>
    public static void TreeViewDelNode(TreeView TreeV)
    {
    
        try
    
        {
    
            TreeV.Nodes.Remove(TreeV.SelectedNode);
    
        }
    
        catch (Exception)
    
        {
    
            throw;
        }
     
    }
    
     
    
    /// <summary>
    /// Treeview在节点添加子节点组
    /// index:一级节点索引  node2:二级节点名称
    /// </summary>
    public static void TreeViewAddTeam(TreeView TreeV, int index, string node2, TreeNode[] childs)
    {
    
        TreeNode newnode = new TreeNode(node2, childs);
    
        newnode.Name = node2;
    
        newnode.Text = node2;
    
        //newnode.ContextMenuStrip = MenuStripTeam;
    
        TreeV.Nodes[index].Nodes.Add(newnode);
    
        TreeV.Nodes[index].Expand();
    
    }
    
     
    
    /// <summary>
    /// Treeview在节点添加子节点组
    /// inode1:一级节点名称  node2:二级节点名称
    /// </summary>
    public static void TreeViewAddTeam(TreeView TreeV, string node1, string node2, TreeNode[] childs)
    {
    
        TreeNode newnode = new TreeNode(node2, childs);
    
        newnode.Name = node2;
    
        newnode.Text = node2;
    
        //newnode.ContextMenuStrip = MenuStripTeam;
    
        TreeV.Nodes[node1].Nodes.Add(newnode);
    
        TreeV.Nodes[node1].Expand();
    
    }
    
     
    
    /// <summary>
    /// 更新指定三级节点名称
    /// inode1:一级节点名称   node2:二级节点名称  node3:三级节点原名称 newName:三级节点新名称
    /// </summary>
    /// <param name="parentNode"></param>
    /// <param name="node"></param>
    public static void TreeViewUpdateNode(TreeView TreeV, string node1,  string node2, string node3, string newName)
    {
    
        TreeV.Nodes[node1].Nodes[node2].Nodes[node3].Remove();
    
        TreeNode newnode = new TreeNode(newName);
    
        newnode.Tag = newName.Clone();
    
        newnode.Name = newName;
    
        TreeV.Nodes[node1].Nodes[node2].Nodes.Add(newnode);
    
    }
    
     
    
    /// <summary>
    /// 更新指定三级节点名称
    /// index:一级节点索引   node2:二级节点名称  node3:三级节点原名称 newName:三级节点新名称
    /// </summary>
    /// <param name="parentNode"></param>
    /// <param name="node"></param>
    public static void TreeViewUpdateNode(TreeView TreeV, int index, string node2, string node3, string newName)
    {
    
        TreeV.Nodes[index].Nodes[node2].Nodes[node3].Remove();
    
        TreeNode newnode = new TreeNode(newName);
    
        newnode.Tag = newName.Clone();
    
        newnode.Name = newName;
    
        TreeV.Nodes[index].Nodes[node2].Nodes.Add(newnode);
    
    }
    
     
    
    /// <summary>
    /// 更新特定二级节点组名称
    /// index:一级节点索引   node2:二级节点名称  newName:二级节点新名
    /// </summary>
    /// <param name="parentNode"></param>
    /// <param name="newText"></param>
    public static void TreeViewUpdateTeam(TreeView TreeV, int index, string node2, string newName)
    {
    
        int count = TreeV.Nodes[index].Nodes[node2].Nodes.Count;
    
        TreeNode[] childNodes = new TreeNode[count];
    
        if (count > 0)
    
        {
    
            for (int j = 0; j < count; j++)
    
            {
    
                childNodes[j] = new TreeNode();
    
                childNodes[j].Text = TreeV.Nodes[index].Nodes[node2].Nodes[j].Text;
    
                childNodes[j].Name = TreeV.Nodes[index].Nodes[node2].Nodes[j].Name;
    
            }
    
        }
    
        TreeV.Nodes[index].Nodes[node2].Remove();
    
     
    
        TreeNode newnode = new TreeNode(newName, childNodes);
    
        newnode.Name = newName;
    
        TreeV.Nodes[index].Nodes.Add(newnode);
    
        TreeV.Nodes[index].Expand();
    
    }
    
     
    
    /// <summary>
    /// 更新特定二级节点组名称
    /// inode1:一级节点名称    node2:二级节点名称  newName:二级节点新名
    /// </summary>
    /// <param name="parentNode"></param>
    /// <param name="newText"></param>
    public static void TreeViewUpdateTeam(TreeView TreeV, string node1, string node2, string newName)
    {
    
        int count = TreeV.Nodes[node1].Nodes[node2].Nodes.Count;
    
        TreeNode[] childNodes = new TreeNode[count];
    
        if (count > 0)
        {
    
            for (int j = 0; j < count; j++)
            {
    
                childNodes[j] = new TreeNode();
    
                childNodes[j].Text = TreeV.Nodes[node1].Nodes[node2].Nodes[j].Text;
    
                childNodes[j].Name = TreeV.Nodes[node1].Nodes[node2].Nodes[j].Name;
    
            }
    
        }
        TreeV.Nodes[node1].Nodes[node2].Remove(); 
    
        TreeNode newnode = new TreeNode(newName, childNodes);
    
        newnode.Name = newName;
    
        TreeV.Nodes[node1].Nodes.Add(newnode);
    
        TreeV.Nodes[node1].Expand();
    
    }

    展开全文
  • 本文主要介绍treeView控件中,添加,修改、删除节点的操作, 首先当窗体加载的时候,我们添加上图中所示的节点。 当点击“Delete the Selected”按钮时,被选中的节点将被删除。 当点击“Edit the Selected...
  • QTreeView删除节点

    千次阅读 2019-07-19 10:04:13
    我前两天做QTreeView的动态添加和删除,添加没问题,但是删除时候就感觉很奇怪,一般删除都是用removeRow(int row)删除的,可以当点击子节点时候把子节点的row传给removeRow·时候删除的是父节点的row所在的一行,...
  • val:'删除', ismy:1, cb:function(t) { alert('delete'); } }, 'pg_add':{ val:'新增', ismy:1, cb:function(t) { alert...
  • 最近有个功能需要一个树形菜单,但是数据量比较大,一次全部加载需要很久。所有自己做了一个功能,当用户展开... //指定treeview的容器 &amp;lt;script&amp;gt; //加载根节点 function getTree() { va
  • (5)常用的几个操作:增加、删除、修改、剪切 @增加节点: Dim tmpNd3 As New Microsoft.Web.UI.WebControls.TreeNode() Dim NdSel As New Microsoft.Web.UI.WebControls.TreeNode() 'NdSel 为当前选定的节点,新节点...
  • treeview每次添加或者删除节点时,重新指定数据源时再指定回原先选择的项 treeView.ItemsSource = m_DataSource; //这里的m_DataSource是你treeView的数据源 foreach (var item in treeView.Items) { var ...
  • TreeView删除和编辑项目Tkinter

    千次阅读 2020-12-13 12:22:35
    您并未删除整个树,因为您对迭代中的每个项目都使用了删除操作,所以只删除根项目中的所有子项。 您可以使用if声明来确定您想要的项目,或者您可以使用selected_item = tree.selection()[0]获取所选项目并删除它。...
  • 新增节点  '设定树状图中节点  Dim node As TreeNode  'Method 1: straightforward adding of nodes   With Me.TreeView1.Nodes  'add text   .Add("A
  • 指定位置插入和删除节点 #include<stdio.h> #include<stdlib.h> #include<stdbool.h> typedef struct _node{ int number; struct _node *next; }Node; typedef struct{ Node *head; Node *...
  • 此例子通过自定义Treemodel和treeitem实现了Qtreeview的节点可以拖动到另一节点下,可以用来实现数据分组等操作。
  • Tree *Delete(Tree *T,int n) { //将树中指定节点删除的函数 Tree *tmp; if(T==NULL) return NULL; if(T->element==n) { if(T->right==NULL) //如果没有...
  • Qt树形控件QTreeView使用1——节点的添加删除操作

    万次阅读 多人点赞 2014-02-08 23:15:23
    QStandardItem * QStandardItemModel::invisibleRootItem()函数并不是得到我们想要的这个顶层节点,它得到的是所有节点的最终根节点,因此,得到顶层节点需要自己写操作,下面是根据任意一个节点获取其可见顶层节点...
  • Nuget​www.nuget.org 注:创建SmartArt图形时,可创建80多种不同类型的图形,编辑图形是,可添加、删除节点、编辑节点内容、给节点内容设置超链接(包括链接到网页、链接到幻灯片) 示例1. 创建PPT SmartArt图形 ...
  • 您可以静态地为 TreeView 控件创建节点 -- 即在设计时创建。如果要创建具有固定项的树,这种方式十分有用。 说明: 不能以静态方式定义节点,也不能将数据绑定到 TreeView 控件。 一、在 TreeView 控件中添加...
  • ===================VB6 Treeview的添加节点子节点Treeview打开、Treeview关闭在窗体上方一个Treeview,四个command Option Explicit Private Sub Command1_Click() Static i As Integer TreeVie
  • TreeView 树菜单 节点

    千次阅读 2015-05-10 18:34:40
    《1》TreeView树的基本操作 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System....
  • (1)点击“Add Root(添加根)”按钮,则在结点...“添加或删除程序”窗口>“添加/删除windows组件”标签>“网络服务”项目,随后系统会自动弹出windows组件向导窗口,选中其中的,并单击该界面中的“详细信息...
  • 【前言】 【mono的gtk#有无法识别中文路径的bug,假如你用xamarin studio开发gtk#工程的话,我建议你将工程放到完全英文的路径下面,免却很多麻烦】 最近在搞gtk#,mono下面的一个桌面ui框架,...treeview的用法。 g

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,806
精华内容 1,122
热门标签
关键字:

treeview删除指定节点