使用TreeView控件创建适当的树状结构

时间:2017-02-09 04:33:18

标签: c# winforms treeview

我搜索过这个网站和其他人寻求解决方案,但遗憾的是我在那里尝试的一切都没有用。 我想要实现的是创建一个树状结构,通过List<>的{​​{1}}控件显示。

这是我到目前为止所做的:

List<string> versions = servers.Select(s => s.Version).Distinct().ToList();

foreach (var version in versions)
{
    TreeNode root = new TreeNode(version);
    root.ExpandAll();
    myTreeView.Nodes.Add(root);

    foreach (var server in servers.Where(x => x.Version == version))
    {
         myTreeView.Nodes.Add(server.ServerName);
    }
}

这样做的目的是在列表类型结构中创建根节点和子节点,如:

VersionA
Server2
Server3
VersionB
Server1
Server4

但我想看到的是:

VersionA
    Server2
    Server3
VersionB
    Server1
    Server4

注意:此层次结构中始终有2个级别。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

每个TreeNode都有自己的Nodes列表,这就是构建树的方法。要向树中添加分支(或叶子),您需要跟踪当前节点的后代。

在你的情况下,代码很接近,可以通过简单地改变内循环中运行的Add的目标来修改代码:

foreach (var server in servers.Where(x => x.Version == version))
{
     root.Nodes.Add(server.ServerName);
}

这会将服务器节点添加为版本节点的叶子。