treeview 点击节点后“不收缩”(因为点部门节点后,所有的节点都收缩了,只看到公司这个根节点)怎么搞?

时间:2021-05-31 11:05:16
treeview 点击节点后“不收缩”(因为点部门节点后,所有的节点都收缩了,只看到公司这个根节点)怎么搞?
另外:打开一个部门节点后,其他所有打开的部门节点自动收缩

有 TreeView1_SelectedNodeChanged 事件

我做的一个功能是:
点+/-右边的公司或部门后,在 treeview 右边的 GridView 里显示相关的员工数据(这个实现了)

4 个解决方案

#1


在节点展开时间里面进行处理

private void tvDevice_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
           if (e.Action != TreeViewAction.Unknown)
           {
              //这里循环折叠其余节点
           }
         }

#2


引用 1 楼  的回复:
在节点展开时间里面进行处理
C# code

private void tvDevice_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
           if (e.Action != TreeViewAction.Unknown)
           {
              //这里循环折叠其……



楼上的不行啊

#3



        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            //TreeView1.SelectedNode.ToggleExpandState();
            TreeView1.CollapseAll();
            TreeView1.SelectedNode.Expand();

            TreeNode node = TreeView1.SelectedNode;
            while (node.Parent != null)
            {
                node.Parent.Expand();
                node = node.Parent;
            }
        }

#4



  protected void Treeview1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
        if (e.Node.Depth != 0)
        { 
            foreach (TreeNode item in Treeview1.Nodes)
            {
                if (e.Node.Value == item.Value)
                {
                    item.Expand();
                }
                else
                {
                    item.Collapse();
                }
            }
        }
    }

#1


在节点展开时间里面进行处理

private void tvDevice_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
           if (e.Action != TreeViewAction.Unknown)
           {
              //这里循环折叠其余节点
           }
         }

#2


引用 1 楼  的回复:
在节点展开时间里面进行处理
C# code

private void tvDevice_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
           if (e.Action != TreeViewAction.Unknown)
           {
              //这里循环折叠其……



楼上的不行啊

#3



        protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            //TreeView1.SelectedNode.ToggleExpandState();
            TreeView1.CollapseAll();
            TreeView1.SelectedNode.Expand();

            TreeNode node = TreeView1.SelectedNode;
            while (node.Parent != null)
            {
                node.Parent.Expand();
                node = node.Parent;
            }
        }

#4



  protected void Treeview1_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
    {
        if (e.Node.Depth != 0)
        { 
            foreach (TreeNode item in Treeview1.Nodes)
            {
                if (e.Node.Value == item.Value)
                {
                    item.Expand();
                }
                else
                {
                    item.Collapse();
                }
            }
        }
    }