为什么添加子节点对象为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"));
}

感谢reza-aghaei

这里的问题是您试图通过它的字符串键(映射到 Name 属性)访问节点,但您从未设置 Name(仅 Text)。

试试这个:

tree.Nodes.AddRange(new[]
    {
        new TreeNode("ok") {Name = "ok"},
        new TreeNode("test") {Name = "test"}
    });