winforms中的树视图错误

本文关键字:视图 错误 winforms | 更新日期: 2023-09-27 17:58:48

我有三个Buttons、一个TextBox和一个TreeView。我正在向TreeView动态添加节点。我使用了一些代码,它正在为第一个(根)按钮工作。显示其他两个按钮的Object reference not set to an instance of an object错误。我的三个按钮是:Add rootAdd childDelete

我的代码:

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

winforms中的树视图错误

当您访问treeView1.SelectedNode时,如果此时没有选定的项,则会引发异常。

修复可能是:

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

可能的问题是,在删除/添加树视图节点上的子节点之前,您不能选择树视图节点中新添加/现有的项。

在执行添加子项之前,请检查什么是t。

第一次它工作是因为,根被选中,下一次不工作是因为添加的新项目不再被选中。

这是因为你没有选择任何东西,你可以告诉用户选择,也可以手动选择。

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