Почему объект является нулевым, если добавляется дочерний узел? - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь добавить дочерний узел, но он говорит, что объект не установлен.

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

Редактировать :
Я не могу ответить на свой собственный пост, потому что кто-то отметил егоно проблема в том, что я не устанавливаю свойство Name в TreeNode

, работающая версия такова:

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 к reza-aghaei

1 Ответ

0 голосов
/ 24 сентября 2019

Проблема здесь в том, что вы пытаетесь получить доступ к узлу по его строковому ключу (который соответствует свойству Name), но вы никогда не устанавливаете Name (только Text).

Попробуйте вместо этого:

tree.Nodes.AddRange(new[]
    {
        new TreeNode("ok") {Name = "ok"},
        new TreeNode("test") {Name = "test"}
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...