【发布时间】:2018-11-13 10:48:22
【问题描述】:
我正忙于一个简单的应用程序。它读取 xml 并将信息放在树视图中。
我通过创建 TreeNode 并嵌套它们来做到这一点,最后返回根树节点。因为我想在选择树节点时显示一些额外的信息,所以我将这些信息放在了 TreeNode 的 tag 属性中。这样,我应该能够在节点被选中时检索到信息。
但是当我尝试检索 Tag 属性中的信息时,它显示 value = null。
这是我填写标签的代码。这是一个用于递归读取 XML dom 的函数。 treeNode 是这个函数的一个参数。
if (treeNode.Tag == null)
{
treeNode.Tag = new List<AttributePair>();
}
(treeNode.Tag as List<AttributePair>).Add(new AttributePair(currentNode.Name, currentNode.Value));
这是一个树节点被选中的事件
private void tvXML_AfterSelect(object sender, TreeViewEventArgs e)
{
if (tvXML.SelectedNode.Tag != null)
{
}
if (e.Node.Tag != null)
{
}
}
这两个值都为 null。我该如何解决这个问题?
【问题讨论】:
-
这对我有用 - 可能听起来很愚蠢,但你确定你没有更改某个地方的节点以将标签设置为 null 吗?
-
您必须使用调试器并单步执行代码才能查看实际发生的情况
-
在这两者之间,我不再碰标签属性了。是的,我使用了调试器。在第一种方法中,我看到标签获取它的值,而在第二种方法中,我看到该值是空的。
-
您是否偶然在表单上设置了 Localizable 属性?
-
由于时间不够,未能提供更多细节。对不起。