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个节点。我如何给他们所有的名字标签和父母的名字?给这个名字/文本最好的逻辑是什么?
如果你没有设置它们,c#中的对象有它们的默认值(在本例中是null
)是完全正常的。
所以,是的,如果您没有显式地将Tag
设置为某些东西,它将为空。你必须面对它。
if
语句,在调用方法之前检查值。