在一个treeView1节点选择事件为什么我'm得到null属性标签

本文关键字:得到 标签 属性 null 为什么 事件 一个 选择 节点 treeView1 | 更新日期: 2023-09-27 18:15:42

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    try
    {
        txtName.Text = "";
        txtParentName.Text = "";
        txtText.Text = "";
        txtTag.Text = "";
        txtName.Text = treeView1.SelectedNode.Name.ToString();
        txtText.Text = treeView1.SelectedNode.Text.ToString();
        txtTag.Text = treeView1.SelectedNode.Tag.ToString();
        txtParentName.Text = treeView1.SelectedNode.Parent.Text.ToString();
    }
    catch { }
}

空行:

txtTag.Text = treeView1.SelectedNode.Tag.ToString();

标签为空

系统。NullReferenceException被捕获HResult=-2147467261
消息=对象引用未设置为对象的实例。
源= ScrollLabel加:在ScrollLabelTest.DisplayResponses。treeView1_AfterSelect(对象发送者,treeviewventargs e)在DisplayResponses.cs:line 58 InnerException:

第58行是:

txtTag.Text = treeView1.SelectedNode.Tag.ToString();

一些节点没有Tag是正常的吗?我需要先给节点添加一个Tag吗?

我从这里拿了一个例子:

TreeView

但是他使用form2来给出一个新的节点名称标签文本…我现在不想给每个节点和子节点分配所有这些属性。

我现在明白,我应该给节点/s名称文本,父名称文本,标签文本。但我有70个节点,在每个节点上我扩展,每个节点上有50-70个节点。我如何给他们所有的名字标签和父母的名字?给这个名字/文本最好的逻辑是什么?

在一个treeView1节点选择事件为什么我'm得到null属性标签

如果你没有设置它们,c#中的对象有它们的默认值(在本例中是null)是完全正常的。

所以,是的,如果您没有显式地将Tag设置为某些东西,它将为空。你必须面对它。

使用if语句,在调用方法之前检查值。