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 { }
}
null在线:
txtTag.Text = treeView1.SelectedNode.Tag.ToString();
标记为空
发现System.NullReferenceException HResult = -2147467261
Message =对象引用未设置为对象的实例 Source = ScrollLabel StackTrace: at ScrollLabelTest.DisplayResponses.treeView1_AfterSelect(Object sender, DisplayResponses.cs中的TreeViewEventArgs e):第58行InnerException:
第58行是:
txtTag.Text = treeView1.SelectedNode.Tag.ToString();
某些节点没有标签是否正常?我是否需要先向节点添加标签?
我从这里拿了例子:
但是他使用form2来提供一个新的节点名称标签文本......我不想现在为每个节点和子节点分配所有这些属性。
我现在明白我应该给出节点名称文本,父名称文本,标签文本。但我有70个节点,在每个节点我扩展,每个节点有50-70个节点。我怎样才能给他们所有的姓名标签和父母姓名?给出这个名字/文字的最佳逻辑是什么?
答案 0 :(得分:1)
如果您没有设置它们,C#中的对象具有默认值(在本例中为null
)是完全正常的。
所以是的,如果你没有明确地将Tag
设置为某个东西,那么它将为null。你将不得不处理它。也许使用if
语句,在调用方法之前检查该值。