【问题标题】:I cannot figure out how to add a child node to a treeview我不知道如何将子节点添加到树视图
【发布时间】:2014-04-16 19:02:59
【问题描述】:

这是我的代码:

public Form1()
{
    InitializeComponent();
    treeView1.Nodes.Add(new TreeNode("Graphic Requests"));
    if (TreeNodesList == null) TreeNodesList = new List<TreeNode>();
    TreeNodesList.Add(new TreeNode("Art Not Started"));
    TreeNodesList.Add(new TreeNode("Art In Progress"));
    TreeNodesList.Add(new TreeNode("Items To Accept/Modify"));
    TreeNodesList.Add(new TreeNode("Final Art Not Locked"));

    foreach (var node in TreeNodesList)
    {
        treeView1.Nodes.Add(node);
    }
}

我期待有一个父节点“图形请求”,其余节点添加为子节点。但是,我的列表如下所示:

谁能告诉我我错过了什么?

【问题讨论】:

    标签: c# winforms treeview


    【解决方案1】:

    您将节点添加到 treeView1 这就是为什么它们是父节点而不是子节点的原因。而是将它们添加到您添加的第一个节点。

    试试这个:

    public Form1()
    {
       InitializeComponent();
       var parent = new TreeNode("Graphic Requests");
    
       TreeNodesList.Add(new TreeNode("Art Not Started"));
       TreeNodesList.Add(new TreeNode("Art In Progress"));
       TreeNodesList.Add(new TreeNode("Items To Accept/Modify"));
       TreeNodesList.Add(new TreeNode("Final Art Not Locked"));
    
       foreach (var node in TreeNodesList)
       {
           parent.Nodes.Add(node);
       }
       treeView1.Nodes.Add(parent);
    }
    

    【讨论】:

    • 确认!我将节点添加到树视图本身,而不是树视图中的父节点。非常感谢!时间一到,我会立即标记答案。
    • 不客气。这是我们错过的简单事物;)
    【解决方案2】:

    您需要将子节点添加到父节点的节点集合中,否则它们不是子节点,而是父节点的兄弟节点。

    public Form1()
    {
        InitializeComponent();
    
        var parentNode = new TreeNode("Graphic Requests");
    
        if (TreeNodesList == null) TreeNodesList = new List<TreeNode>();
        TreeNodesList.Add(new TreeNode("Art Not Started"));
        TreeNodesList.Add(new TreeNode("Art In Progress"));
        TreeNodesList.Add(new TreeNode("Items To Accept/Modify"));
        TreeNodesList.Add(new TreeNode("Final Art Not Locked"));
    
        foreach (var node in TreeNodesList)
        {
            parentNode.Nodes.Add(node);
        }
        treeView1.Nodes.Add(parentNode);
    }
    

    【讨论】:

      【解决方案3】:

      您实际上是直接将所有节点添加到树视图中。应该将您的子节点添加到作为您的父节点的“图形”,然后将您的父节点添加到您的树视图。 试试这个:

      public Form1()
      {
          InitializeComponent();
          TreeNode parent = new TreeNode("Graphic Requests")
          if (TreeNodesList == null) TreeNodesList = new List<TreeNode>();
          TreeNodesList.Add(new TreeNode("Art Not Started"));
          TreeNodesList.Add(new TreeNode("Art In Progress"));
          TreeNodesList.Add(new TreeNode("Items To Accept/Modify"));
          TreeNodesList.Add(new TreeNode("Final Art Not Locked"));
      
          foreach (var node in TreeNodesList)
          {
              parent.Nodes.Add(node);
          }
          treeView1.Nodes.Add(parent);
      }
      

      【讨论】:

        【解决方案4】:

        您首先需要将根节点添加到树中,然后才添加子节点:

        treeView1.Nodes.Add(new TreeNode("Graphic Requests")); // ROOT NODE
        
        TreeNode parentNode = treeView2.Nodes[0];
        if (parentNode != null)
        {
          parentNode.Add(new TreeNode("Art Not Started"));
          parentNode.Add(new TreeNode("Art In Progress"));
          parentNode.Add(new TreeNode("Items To Accept/Modify"));
          parentNode.Add(new TreeNode("Final Art Not Locked"));
        }
        

        【讨论】:

          【解决方案5】:

          你必须做这样的事情来附加到父级:

          foreach (var node in TreeNodesList)
          {
              treeView1.Nodes[0].Nodes.Add(node);
          }
          

          如果你想了解更多关于填写TreeView的信息,我推荐你以下article

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-04-15
            • 2013-03-25
            • 2015-03-20
            • 1970-01-01
            • 2010-11-26
            • 1970-01-01
            • 1970-01-01
            • 2011-09-28
            相关资源
            最近更新 更多