Spe*_*ump 4 c# treeview treenode insert winforms
如何将新子项插入C#WinForms中TreeView中的特定节点?
我一直在笨拙地刺穿TreeViews将近一个小时,我想像这样使用C#的TreeView:
treeView.getChildByName("bob").AddChild(new Node("bob's dog"));
Run Code Online (Sandbox Code Playgroud)
这是我上次尝试的(我认为C#应该永远不会让我达到的毛茸茸程度):
tree.Nodes[item.name].Nodes.Add(new TreeNode("thing"));
Run Code Online (Sandbox Code Playgroud)
不用说,它不起作用.
哦,这是一个懒惰的问题:你真的可以在这些节点中存储对象吗?或者TreeNode只支持字符串和诸如此类的东西?(在这种情况下我应该扩展TreeNode .. /叹气)
请帮忙,谢谢!
您可以使用Insert而不是Add.
tree.Nodes[item.name].Nodes.Insert(2, (new TreeNode("thing")));
Run Code Online (Sandbox Code Playgroud)
实际上你的代码应该工作 - 为了添加你只需要做的子节点:
myNode.Nodes.Add(new TreeNode("Sub node"));
Run Code Online (Sandbox Code Playgroud)
也许问题在于您引用现有节点的方式.我猜那棵tree.Nodes [item.Name]返回null?
为了使此索引器能够找到节点,您需要在添加节点时指定密钥.您是否将节点名称指定为键?例如,以下代码适用于我:
treeView1.Nodes.Add("key", "root");
treeView1.Nodes["key"].Nodes.Add(new TreeNode("Sub node"));
Run Code Online (Sandbox Code Playgroud)
如果我的答案不起作用,您能否添加更多详细信息?你得到了一些例外,或者没有发生什么事吗?
PS:为了在节点中存储对象,而不是使用Tag属性,您还可以从TreeNode派生自己的类并在其中存储任何内容.如果您正在开发库,这更有用,因为您要离开Tag属性供您的用户使用.
然
| 归档时间: |
|
| 查看次数: |
19450 次 |
| 最近记录: |