rt

解决方案 »

  1.   

    treeview应该有find之类的函数,得到该节点后设置expand = true
      

  2.   

    treeview有find这种函数吗?那我以前不是太蠢了,还写个递归函数来实现这个功能(还好代码量也不大^^)节点展开如各位楼上那样就可以了(expand = true)。就是选中不知道怎么作,TreeNode的IsSelected是只读的……
      

  3.   

    简单改一下,应该可以实现你的要求
    //
    // 选中节点
    //
    private void SetNodeSelected(TreeNode node)
    {
    //
    // 把当前节点所有父节点展开
    //
    TreeNode tempNode = node;
    while (tempNode.Parent is TreeNode)
    {
    ((TreeNode)tempNode.Parent).Expanded = true;
    tempNode = (TreeNode)tempNode.Parent;
    }
    //
    // 把当前节点设置树的选中节点
    //
    TreeView1.SelectedNodeIndex = node.GetNodeIndex();
    }
      

  4.   

    /// <summary>
    /// 查找树中指定节点,并展开,至于选中看楼上的吧
    /// 假设查找条件在TreeNode.Tag里
    /// </summary>
    /// <param name="tree">要查找的树</param>
    /// <param name="ID">要指定的条件(假设为int)</param>
    public void FindNode(TreeNode tree,int ID)
    {
             if((int)tree.Tag == ID)
    {
    tree.Expand();
    }
    else
    {
    foreach(TreeNode node in tree.Nodes)
    {
    FindNode(node,ID);
    }
    }
    }