Ich verwende das TreeView-Steuerelement in WinForm.
Ich versuche, den folgenden Code zu verwenden, aber "NullReferenceException" zu erhalten. Ich folge der bereitgestellten Syntax, d. H. tree.Nodes[key].Nodes.Add(key,text)
Ich weiß nicht, was mit dem Code falsch ist.
Bitte schauen Sie sich den Code an, den ich benutzt habe -
tvTree.Nodes.Add("Subjects", "Subjects");
tvTree.Nodes["Subjects"].Nodes.Add("Physics", "Physics");
tvTree.Nodes["Physics"].Nodes.Add("PhysicsP1", "Paper1");
tvTree.Nodes["Physics"].Nodes.Add("PhysicsP2", "Paper2");
tvTree.Nodes["Physics"].Nodes.Add("PhysicsP3", "Paper3");
Danke, dass du deine Zeit geteilt hast.
Antworten:
4 für die Antwort № 1Auch Sie können dies mit erreichen
tvTree.Nodes.Add("Subjects", "Subjects");
tvTree.Nodes["Subjects"].Nodes.Add("Physics", "Physics");
var phyNode = tvTree.Nodes.Find("Physics", true).First();
phyNode.Nodes.Add("PhysicsP1", "Paper1");
phyNode.Nodes.Add("PhysicsP2", "Paper2");
phyNode.Nodes.Add("PhysicsP3", "Paper3");
4 für die Antwort № 2
Ihr Problem ist, dass die "Physik" -Knoten keine direkten Kinder von sind tvTree
aber stattdessen sind Kinder des Knotens "Subjects". Was sollte das einfacher machen? TreeNodeCollection.Add gibt einen TreeNode zurück, auf den Sie später verweisen können.
var subjects = tvTree.Nodes.Add("Subjects", "Subjects");
var physics = subjects.Nodes.Add("Physics", "Physics");
physics.Nodes.Add("PhysicsP1", "Paper1");
physics.Nodes.Add("PhysicsP2", "Paper2");
physics.Nodes.Add("PhysicsP3", "Paper3");
Wenn Sie nur den Namen haben, können Sie verwenden Finden:
var parentName = "from wherever";
var parentNodes = tvTree.Nodes.Find(parentName, true);
/* handle multiple results */
/* add children */
1 für die Antwort № 3
Sie können dies verwenden
tvTree.Nodes["Subjects"].Nodes["Physics"].Add("PhysicsP1", "Paper1");