级数不一定,如何从当前节点转到下一个叶节点

解决方案 »

  1.   

    treeView.SelectedNode = e.TreeNode.NextNode
      

  2.   

    汗, 写错了treeView.SelectedNode = treeView.SelectedNode.NextNode
      

  3.   

    入图
    http://www.1our.cn/11.gif
    就是如何从1.1到1.2.1
      

  4.   


    TreeNode next_node = treeView.SelectedNode.NextNode;
    while (next_node.Nodes.Count > 0) {
        next_node = next.Nodes[0];
    }
    treeView.SelectedNode = next_node;
      

  5.   

    楼上的代码肯定不行!
    级数不一定的,treeView.SelectedNode.NextNode到了一个项的最后一个页节点就返回空了
      

  6.   

            private void button1_Click(object sender, EventArgs e)
            {
                //选中节点的下一个叶节点
                nextf(treeView1.SelectedNode);
            }
            //取下一个节点
            private void nextf(TreeNode treeNode)
            {
                int i = treeNode.Index;            //本身就是父节点
                if (treeNode.Nodes.Count > 0)
                {
                    currentf(treeNode);
                    return;
                }            //本身不是父节点但是根目录下的节点
                if (treeNode.Parent == null)
                {
                    if (treeView1.Nodes.Count > i)
                    {
                        currentf(treeView1.Nodes[i + 1]);
                        return;
                    }
                    else
                    {
                        MessageBox.Show("不能往下了!");                }
                }
                else
                {
                    if (treeNode.Parent.Nodes.Count > i + 1)
                    {
                        //如果下一个结存在就取这个节点的叶节点
                        currentf(treeNode.Parent.Nodes[i + 1]);
                    }
                    else
                    {
                        //如果没下个叶节点就求父节点的下一个节点的叶节点
                        if (treeNode.Parent.Parent == null)
                        {
                            if (treeView1.Nodes.Count > i)
                            {
                                currentf(treeView1.Nodes[i + 1]);
                                return;
                            }
                            else
                            {
                                MessageBox.Show("不能往下了!");                        }
                        }
                        else
                        {
                            currentf(treeView1.Nodes[treeNode.Parent.Index + 1]);
                        }
                    }
                }
            }        //取最深的叶节点
            private void currentf(TreeNode treeNode)
            {
                if (treeNode.Nodes.Count == 0)
                {
                    MessageBox.Show(treeNode.Text);
                    return;
                }
                else
                {
                    currentf(treeNode.Nodes[0]);
                }
            }
      

  7.   


                TreeNode t_Node = treeView1.SelectedNode;
                TreeNode tn = new TreeNode();
                if (t_Node.Parent != null)
                   tn = t_Node.Parent.NextNode;
               if (tn.Nodes.Count > 0)
               {
                   treeView1.SelectedNode = tn.Nodes[0];
               }
      

  8.   


    if(treeView.SelectedNode.NextNode!=null)
    {
       treeView.SelectedNode.NextNode.Selected=true;
    }