winforms中的树视图错误
本文关键字:视图 错误 winforms | 更新日期: 2023-09-27 17:58:48
我有三个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();
}
当您访问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;
}