/ / jak zrobić pętlę for w treeview winforms - C #, winforms, treeview, nodes

jak zrobić pętlę w WinFormach widoku drzewa - c #, WinForm, Treeview, węzły

Mam więc problem z ustawieniem pętli for. Mam zdarzenie kliknięcia przycisku, w którym czytam tekst węzła i piszę do innego pliku tekst za pomocą appendline. Oto mój kod:

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

if (treeView1.Nodes[0].Text == ("chaper1")) sb.AppendLine(@"include {chap1}");
if (treeView1.Nodes[1].Text == ("chapter2")) sb.AppendLine(@"include {chap2}");
if (treeView1.Nodes[2].Text == ("chapter3")) sb.AppendLine(@"include {chap3}");
if (treeView1.Nodes[3].Text == ("chapter4")) sb.AppendLine(@"include {chap4}");

sb.AppendLine(footer);
File.WriteAllText(@"C: dirfinal.tex", sb.ToString());
}

Mój program usuwa węzły z dodanych węzłów. Na przykład jeśli usunę jeden węzeł treeview1.node[2], my node[3], staje się node[2]. Jak ustawić to na pętlę? A może są inne opcje?

Dzięki.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz po prostu użyć a foreach zapętlić widok drzewa Nodes kolekcja, na przykład:

var sb = new StringBuilder();
foreach (TreeNode node in treeView1.Nodes)
{
sb.AppendLine(node.Text);
}

Również jeśli chcesz dodać inny tekst node.Text możesz przechowywać inny ciąg w Tag właściwość węzła podczas tworzenia węzła i dodawania go do drzewa, na przykład podczas dodawania węzła:

treeView1.Nodes.Add(new TreeNode("Text") { Tag = "Some Other Text" });

A gdy używasz:

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

0 dla odpowiedzi nr 2

Możesz przypisać nazwę do swojego węzła,

na przykład:

treeView1.Nodes.Add(new TreeNode() {Name="1",Text="chaper1" });
treeView1.Nodes.Add(new TreeNode() { Name = "2", Text = "chaper2" });
treeView1.Nodes.Add(new TreeNode() { Name = "3", Text = "chaper3" });

W ten sposób możesz wyszukiwać według nazwy, a nie według indeksu