首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeNode密钥问题

TreeNode密钥问题
EN

Stack Overflow用户
提问于 2012-07-05 04:45:55
回答 3查看 5.3K关注 0票数 2

我在WinForm中使用TreeView控件。

我试着使用下面的代码,但是得到了"NullReferenceException“。我遵循提供的语法,即tree.Nodes[key].Nodes.Add(key,text)

我不知道代码有什么问题。

请看一下我使用的代码-

代码语言:javascript
复制
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");

感谢您与我们分享您的时间。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-05 04:58:13

此外,您还可以使用以下命令来实现此目的

代码语言:javascript
复制
        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
EN

Stack Overflow用户

发布于 2012-07-05 04:54:11

您的问题是“物理”节点不是tvTree的直接子节点,而是"Subjects“节点的子节点。让这件事变得更容易的是,TreeNodeCollection.Add会返回一个您以后可以引用的TreeNode。

代码语言:javascript
复制
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");

如果只有名称,则可以使用Find

代码语言:javascript
复制
var parentName = "from wherever";

var parentNodes = tvTree.Nodes.Find(parentName, true);

/* handle multiple results */
/* add children */
票数 6
EN

Stack Overflow用户

发布于 2015-05-14 21:44:02

你可以使用这个

代码语言:javascript
复制
tvTree.Nodes["Subjects"].Nodes["Physics"].Add("PhysicsP1", "Paper1");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11335273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档