我有一个名为Holder(holder.cs)的类,其中包含以下内容:
string name;
List<String> overView;
两者都获得并设置了加速器。
现在的问题是获取一个树视图,其中所有的overView项都作为父节点,列出了下面所有属于它的名称。
所以在我的treeviewForm.cs
中,到目前为止,我有以下内容正确列出了overView项目。
该名称是通过文本框输入的,而overView只是4个项目,可以通过选择复选框来选择或不选择。
但我不知道我是如何将名称添加到overView节点的。因为我似乎无法连接名称应该来的treeViewList.Nodes.Add(list[i].overView[j]
后面的任何内容。
listForm.cs类:
List<Holder> list;
private void ShowOverviewWithName()
{
treeViewList.Nodes.Clear();
for (int i=0; i < list.Count; i++)
{
for (int j=0; j < list[i].overView.Count; j++)
{
//adds the overView name
treeViewList.Nodes.Add(list[i].overView[j]);
}
}
treeViewList.ExpandAll();
}
基本上我正在寻找的树视图显示是:
Overview1
name1
name2
name3
Overview2
name7
anyothernamethatbelongshere...
使用属于概述的所有名称。
感谢。
答案 0 :(得分:0)
你需要:
希望这有帮助!
答案 1 :(得分:0)
我不确定你的问题......
但是假设有这个代码:
var h1 = new Holder{ name = "name1", overView = new List<string>{ "Overview1", "Overview2" } };
var h2 = new Holder{ name = "name2", overView = new List<string>{ "Overview1" } };
var h3 = new Holder{ name = "name3", overView = new List<string>{ "Overview1" } };
var h4 = new Holder{ name = "name4", overView = new List<string>{ "Overview2" } };
List<Holder> list = new List<Holder> { h1, h2, h3, h4 };
treeViewList.Nodes.Clear();
for (int i = 0; i < list.Count; i++)
{
for (int j = 0; j < list[i].overView.Count; j++)
{
string overviewName = list[i].overView[j];
//adds the overView name if doesn't exist yet
TreeNode parent;
if (!treeViewList.Nodes.ContainsKey(overviewName))
parent = treeViewList.Nodes.Add(overviewName,overviewName);
else
parent = treeViewList.Nodes[overviewName];
// adds the name under the overView
parent.Nodes.Add(list[i].name);
}
}
treeViewList.ExpandAll();
您将获得以下树: