n.Expand();

n.ExpandAll();

解决方案 »

  1.   

    选中节点可以用
    n.TreeView.SelectedNode = n.LastNode;
      

  2.   

    是winform编程,不是要展开所有节点,而是要展开跟listbox选中的值相同的节点啊
      

  3.   

    TreeNodeCollection nodes = treeView1.Nodes;
    foreach (TreeNode n in nodes)
    {
    }
    这样只能遍历第一级节点,怎么样能遍历所有节点呢?
      

  4.   

    n.Selected = true;
    if (n.Parent != null)
    {
        this.CollapseTree(n.Parent);
    }其中CollapseTree方法如下:void ExpandTree(TreeNode ParentNode)
    {
    if(!ParentNode.IsExpanded)
        ParentNode.Expand();
    if(ParentNode.Parent != null)
        ExpandTree(ParentNode.Parent) ;
    }没有经过调试,你可以试试。
      

  5.   

    现在问题是怎么遍历所有的节点,然后找到跟listbox值相同的节点,在做相应的操作。
      

  6.   

    遍历知道了,用递归法。现在的问题是不能选中和listbox相同的节点。代码如下
    private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    TreeNodeCollection nodes = treeView1.Nodes;
    foreach (TreeNode n in nodes)
    {
    Recursive(n);
    } }
    private void Recursive(TreeNode n)
    {
    foreach (TreeNode m in n.Nodes)
    {
    if(listBox1.Text.Trim()==m.Text)
    {
    if(null!=m.FirstNode)
    {
    m.TreeView.SelectedNode = m.FirstNode;
    }
    else
    {
    m.TreeView.SelectedNode = m.Parent;
    m.Parent.Expand();
    }
    }
    Recursive(m);
    }
    }
    只能选中子节点(如果有子节点)或者父节点(如果没有子节点)。
    还有怎么让选中的节点高亮度显示?
      

  7.   

    用n.TreeView.SelectedNode,再加条件可以吧。
      

  8.   

    一个可能不是很好但肯定能解决问题的方法是遍历树,找到值相等的节点,然后调用该节点的Expand方法展开之
      

  9.   

    关键是怎么样把当前节点赋给n.TreeView.SelectedNode属性呢?