/ / TreeNode Schlüsselproblem - c #, winforms

TreeNode Schlüsselproblem - c #, winforms

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 № 1

Auch 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");