none
如何控件treeview收缩和展开? RRS feed

  • 问题

  •  protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
            {
                    for (int i = 0; i < TreeView1.Nodes.Count; i++)
                    {
                        if (TreeView1.SelectedValue == TreeView1.Nodes[i].Value)
                        {
                            TreeView1.SelectedNode.Expanded = true;
                        }
                        else
                        {
                            for (int j = 0; j < TreeView1.SelectedNode.Parent.ChildNodes.Count; j++)
                            {
                                TreeView1.SelectedNode.Parent.ChildNodes[j].CollapseAll();
                            }
                            TreeView1.SelectedNode.Parent.Expanded = true;
                            TreeView1.SelectedNode.Expanded = true;
                        }
                    }      
            }

    这是我在网上找到的一个方法,但是测试时是不能通过的?我想请问各位老师:如何才能控制自如的让我点击一“+”个节点,展开这个节点,如果是“-”节点,我点击时又能自动收缩?


    2011年8月17日 9:20

答案

  • 你用的是SelectedNodeChanged事件 如果你一直点击一个节点想要它展开和收缩是不可能的,因为你第二次点击的时候根本不会执行这个事件,你必需要换一个节点点击,再回来点击这个节点事件才会执行。


    发现问题,解决问题!

    补充一点 你那方法根部不需要循环的


            if (TreeView1.SelectedNode.Expanded == false)
            {
                TreeView1.SelectedNode.Expand();
            }
            else

            {
                TreeView1.SelectedNode.Collapse();
            }

    • 已编辑 强少 2011年8月19日 3:17 补充
    • 已标记为答案 午夜流星 2011年8月19日 8:28
    2011年8月19日 3:14

全部回复

  • TreeView控件不需要专门自己先事件来控制展开和收缩,它自己本来就已经带了这个功能了。你可能需要做的是在初始化时你需要控制那些节点打开或者收缩,默认是全部收缩!
    发现问题,解决问题!
    2011年8月18日 2:39
  • 我只想要它能够收缩和展开,不论是那些节点都可以的,关键是现在我只有两级节点,它的展开是没有问题的,但是当我展开节点后,就再也收缩不回来了!
    2011年8月18日 9:22
  • 你用的是SelectedNodeChanged事件 如果你一直点击一个节点想要它展开和收缩是不可能的,因为你第二次点击的时候根本不会执行这个事件,你必需要换一个节点点击,再回来点击这个节点事件才会执行。


    发现问题,解决问题!

    补充一点 你那方法根部不需要循环的


            if (TreeView1.SelectedNode.Expanded == false)
            {
                TreeView1.SelectedNode.Expand();
            }
            else

            {
                TreeView1.SelectedNode.Collapse();
            }

    • 已编辑 强少 2011年8月19日 3:17 补充
    • 已标记为答案 午夜流星 2011年8月19日 8:28
    2011年8月19日 3:14
  • 谢谢您,这点我确实没有想到!
    2011年8月19日 8:29