Я використовую управління TreeView у WinForm.
Я намагаюся використовувати наступний код, але отримую "NullReferenceException". Я стежу за наданим синтаксисом, тобто tree.Nodes[key].Nodes.Add(key,text)
Я не знаю, що не так з кодом.
Перегляньте код, який я використав -
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");
Дякуємо, що поділилися вашим часом.
Відповіді:
4 для відповіді № 1Також ви можете досягти цього за допомогою
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 для відповіді № 2
Ваша проблема полягає в тому, що вузли "Фізика" не є прямими дітьми tvTree
але натомість це діти вузла "Предмети". Що має полегшити, це те, що це TreeNodeCollection.Add повертає TreeNode, на який можна посилатися згодом.
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");
Якщо у вас є лише ім’я, ви можете використовувати Знайдіть:
var parentName = "from wherever";
var parentNodes = tvTree.Nodes.Find(parentName, true);
/* handle multiple results */
/* add children */
1 для відповіді № 3
Ви можете використовувати це
tvTree.Nodes["Subjects"].Nodes["Physics"].Add("PhysicsP1", "Paper1");