如何为树视图节点childer设置层次结构foreach循环

本文关键字:设置 层次结构 foreach 循环 childer 节点 视图 | 更新日期: 2023-09-27 18:24:32

我有一个程序,可以在树视图中添加和删除不需要的章节。我正在写的所有内容都被保存到文件中,稍后会被生成为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循环。也许有人能帮我?

谢谢。

如何为树视图节点childer设置层次结构foreach循环

您可以尝试使用此代码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;
        }
    }
}