【问题标题】:Create proper tree like structure with TreeView control使用 TreeView 控件创建适当的树状结构
【发布时间】:2017-02-09 04:33:17
【问题描述】:

我已经通过这个网站和其他网站搜索了解决方案,但不幸的是,我在那里尝试的所有方法都没有奏效。 我想要实现的是创建一个树状结构,通过TreeView 控件从List<> 显示。

这是我目前所拥有的:

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 个级别。 请帮帮我。

【问题讨论】:

  • 为了澄清,myTreeViewresultView是一样的吗?
  • 是的,抱歉,我会更正一下,谢谢

标签: c# winforms treeview


【解决方案1】:

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

在您的情况下,代码很接近,可以通过简单地更改在内部循环中操作的Add 的目标来修改,如下所示:

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

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

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多