【发布时间】:2020-01-24 21:55:26
【问题描述】:
我正在尝试添加一个子节点,但它说该对象未设置。
public void Test(TreeView tree)
{
tree.Nodes.AddRange(new TreeNode[] { new TreeNode("ok"), new TreeNode("test")});
foreach (TreeNode node in tree.Nodes)
tree.Nodes["test"].Nodes.Add("a child node");
}
private void Button1_Click_1(object sender, EventArgs e)
{
Test(treeView1);
}
编辑:
我无法回答我自己的帖子,因为有人标记了它,但问题是我没有在 TreeNode 中设置属性 Name
工作版本是:
public void Test(TreeView tree)
{
tree.Nodes.AddRange(new TreeNode[] { new TreeNode("ok") { Name = "ok" }, new TreeNode("test") { Name = "test" } });
foreach (TreeNode node in tree.Nodes)
tree.Nodes["test"].Nodes.Add(new TreeNode("a child node"));
}
【问题讨论】:
-
初始化treeView1的代码在哪里?
-
创建
"test"节点的代码在哪里?您有tree.Nodes["test"],但没有在我能看到的任何地方创建该节点。 -
@TerryTyson 这只是设计时添加的控件
-
@Amy 它是用
tree.Nodes.AddRange创建的 -
Node.Text与Node.Text不同。new TreeNode("test")创建了一个具有Text = "test"的节点,但tree["test"]试图找到一个具有Name = "test"的节点。