C# TreeNode关键问题
我正在WinForm中使用TreeView控件 我试图使用以下代码,但得到的是“NullReferenceException”。 我遵循提供的语法,即C# TreeNode关键问题,c#,winforms,C#,Winforms,我正在WinForm中使用TreeView控件 我试图使用以下代码,但得到的是“NullReferenceException”。 我遵循提供的语法,即tree.Nodes[key].Nodes.Add(key,text) 我不知道代码有什么问题 请看一下我使用的代码- tvTree.Nodes.Add("Subjects", "Subjects"); tvTree.Nodes["Subjects"].Nodes.Add("Physics", "Physics"); tvTree.Nodes["
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");
谢谢分享您的时间。您的问题是,“物理”节点不是tvTree
的直接子节点,而是“主题”节点的子节点。使这更容易的是,它返回一个树节点,您可以稍后引用它
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");
如果您只有名称,则可以使用:
你也可以通过
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");
你可以用这个
tvTree.Nodes["Subjects"].Nodes["Physics"].Add("PhysicsP1", "Paper1");
谢谢你,奥斯汀!如果我知道子节点,代码就完美了。我实际上是从数据库中获取节点及其级别。谢谢Emre!我从你和奥斯汀那里得到了这个主意。
tvTree.Nodes["Subjects"].Nodes["Physics"].Add("PhysicsP1", "Paper1");