Ошибка просмотра дерева в winforms - PullRequest
3 голосов
/ 09 июня 2011

У меня есть три Buttons, один TextBox и TreeView.Я добавляю узлы динамически к TreeView.Я использовал некоторый код, и он работает для первой (корневой) кнопки.Он показывает ошибку Object reference not set to an instance of an object для двух других кнопок.Мои три кнопки: Add root, Add child, Delete.

Мой код:

private void button1_Click(object sender, EventArgs e)
{
    TreeNode t;
    t = treeView1.Nodes.Add(textBox1.Text);
}

private void button2_Click(object sender, EventArgs e)
{
    TreeNode t;
    t = treeView1.SelectedNode;
    t.Nodes.Add(textBox1.Text);
    treeView1.SelectedNode.ForeColor = Color.Red;
}

private void button3_Click(object sender, EventArgs e)
{     
    treeView1.SelectedNode.Remove();
}

Ответы [ 3 ]

1 голос
/ 09 июня 2011

Исключение выдается при доступе к treeView1.SelectedNode, когда в данный момент нет выбранного элемента.

Исправление может быть:

private void button3_Click(object sender, EventArgs e)
{
    if (treeView1.SelectedNode != null)
        treeView1.SelectedNode.Remove();
}
1 голос
/ 09 июня 2011

Возможная проблема заключается в том, что вы не можете выбрать новый добавленный / существующий элемент в узле дерева перед удалением / добавлением дочерних узлов на нем.

Вы проверяете, что происходит перед добавлением дочернего узла.

Первый раз работает, потому что выбран root, в следующий раз не работает, потому что добавленный новый элемент больше не выбирается.

0 голосов
/ 09 июня 2011

Это, вероятно, вы ничего не выбрали, вы можете сказать пользователю, чтобы выбрать или вы можете выбрать вручную.

private void button3_Click(object sender, EventArgs e)
{
    if (treeView1.SelectedNode != null)
        treeView1.SelectedNode.Remove();
   else
      Messagebox.Show ("Please select the node first");
}

private void button1_Click(object sender, EventArgs e)
    {
        TreeNode t;
        t = treeView1.Nodes.Add(textBox1.Text);
        treeView1.SelectedNode = t;

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...