0

I m trying to add a child node but it says the object is not set.

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);
}

Edit:
I cant answer my own post because someone marked it but the problem is that I dont set the property Name in TreeNode

the worked version is that:

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"));
}

thanxs to reza-aghaei

1 Answers1

0

The problem here is that you're trying to access a node by it's string key (which maps to the Name property), but you're never setting the Name (only the Text).

Try this instead:

tree.Nodes.AddRange(new[]
    {
        new TreeNode("ok") {Name = "ok"},
        new TreeNode("test") {Name = "test"}
    });
Rufus L
  • 36,127
  • 5
  • 30
  • 43