本帖最后由 acai1028 于 2010-05-27 14:26:11 编辑

解决方案 »

  1.   


    这是一个删除节点的代码 LZ参照一样        /// <summary>
            /// 
            /// </summary>
            /// <param name="node"></param>
            private void DeleteNode(TreeNode node)
            {
                TreeNode tempNode = null;
                if (node.Nodes.Count > 0)
                {
                    node = node.Nodes[0];
                    DeleteNode(node);
                }
                else
                {
                    Node.DeleteNode(node.Text);
                    tempNode = node;
                }
                if (node != selectedNode && node.Parent != null)
                {
                    node = node.Parent;
                    node.Nodes.Remove(tempNode);
                    DeleteNode(node);
                }
            }楼主应该提高结贴率.
      

  2.   

    判断条件就是该节点的子节点Nodes属性,其Count不为0,就表示还有下一级节点,就继续遍历!node.Nodes.Count > 0
      

  3.   

            private StringBuilder s = new StringBuilder();
            /// <summary>
            /// 遍历把最后级的子节点的Text保存到s
            /// </summary>
            /// <param name="node">传入所选择的节点,例如“马”</param>
            private void ShowNode(TreeNode node)
            {            foreach (TreeNode tmnode in node.ChildNodes)
                {
                    if (tmnode.ChildNodes.Count > 0)//还不是最后级的子节点
                    {
                        ShowNode(tmnode);
                    }
                    else//是最后级的子节点
                    {
                        s.AppendLine(tmnode.Text);
                    }
                }           
            }
      

  4.   

    类似于文件遍历private StringBuilder s = new StringBuilder();
    private void ShowNode(TreeNode node)
            {
                s.AppendLine(node.Text);
                foreach (TreeNode tmnode in node.ChildNodes)
                {
                    ShowNode(tmnode);
                }           
            }