如何为treeview节点childer设置层次结构foreach循环

时间:2015-11-25 10:41:34

标签: c# treeview

我有程序在树视图中添加和删除不需要的章节。我写入文件的所有内容,后来生成为PDF格式。首先,这是我的文件编写代码:

private void button3_Click(object sender, EventArgs e)
        {
            { 
            var header = File.ReadAllText(@"C:\dir\header.tex");
            var footer = File.ReadAllText(@"C:\dir\footer.tex");
            var sb = new StringBuilder();

            sb.AppendLine(header);

            foreach (TreeNode node in treeView1.Nodes)
            {

                var tag = node.Tag as string;
                sb.AppendLine(string.IsNullOrEmpty(Text) ? node.Text : tag);

            }

            sb.AppendLine(footer);
            File.WriteAllText(@"C: \dir\final.tex", sb.ToString());
        }
            { 
            var chapaheader = File.ReadAllText(@"C:\dir\chapaheader.tex");
            var sba = new StringBuilder();
            sba.AppendLine(chapaheader);
                foreach (TreeNode node in treeView1.Nodes)
                {
                    foreach (TreeNode child in node.Nodes)
                    {

                        var tag = child.Tag as string;
                        sba.AppendLine(string.IsNullOrEmpty(Text) ? child.Text : tag);
                    }
                    File.WriteAllText(@"C: \dir\chapterA.tex", sba.ToString());
                }

我有大约5章,我不知道如何编写右章节文件中的每章章节。现在我的程序通过在主文件中添加正确的章节来做得很好,但章节A文件中充满了其他章节和章节B,C,D,E是空的。所以我认为我需要使它成为层次化的foreach循环。也许有些人可以帮助我?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码recursive method

IEnumerable<TreeNode> Iterate(TreeNodeCollection nodes)
{
    foreach(TreeNode node in nodes)
    {
        yield return node;

        foreach (var child in Iterate(node.Nodes)
        {
           yield return child;
        }
    }
}