为什么添加子节点对象为null?
Why does the object is null if adding a child node?
我正在尝试添加一个子节点,但它说该对象未设置。
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);
}
编辑:
我无法回答我自己的 post 因为有人标记了它但问题是我没有在 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"));
}
这里的问题是您试图通过它的字符串键(映射到 Name
属性)访问节点,但您从未设置 Name
(仅 Text
)。
试试这个:
tree.Nodes.AddRange(new[]
{
new TreeNode("ok") {Name = "ok"},
new TreeNode("test") {Name = "test"}
});
我正在尝试添加一个子节点,但它说该对象未设置。
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);
}
编辑:
我无法回答我自己的 post 因为有人标记了它但问题是我没有在 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"));
}
这里的问题是您试图通过它的字符串键(映射到 Name
属性)访问节点,但您从未设置 Name
(仅 Text
)。
试试这个:
tree.Nodes.AddRange(new[]
{
new TreeNode("ok") {Name = "ok"},
new TreeNode("test") {Name = "test"}
});