在此项目中,生成了多个报告。每个报告都可以有无限的子报告,这使得它成为一个完全递归的解决方案。我需要制作一个C#查看器来显示这些报告,所以我现在制作了一个基本原型,左侧是树视图,右侧是带文本框的。
我的问题是我无法找到一种方法让正确的文本填充左侧报告中的信息(从树视图)。报告的名称可以是重复的。我最初将所有信息添加到字典中,其中键和数据的报告名称为值,但由于重复的标题,这不起作用...
我想为每个报告使用某种独特的随机ID来将treenode与正确的报告信息相关联,但我似乎很难做到这一点。 http://msdn.microsoft.com/en-us/library/system.windows.forms.treenode.aspx
从我所看到的内容看起来似乎没有某种属性我可以用来做到这一点......我怎样才能使正确的文本框根据所选的treenode填充报告中的信息左边?目前正在递归添加treenodes,就像我说的那样可能有重复,所以节点的名称不一定是唯一的。
谢谢,我很乐意回答任何进一步的问题。
答案 0 :(得分:3)
使用TreeNode.Tag
属性存储对报告的引用:
TreeNode node = TreeView1.Nodes.Add(report.Name);
node.Tag = report;
然后,在AfterSelect
事件处理程序中,从所选节点的Tag
属性中检索报告:
Report report = (Report)e.Node.Tag;