2014-03-12 47 views
1

这里是我的代码:我无法弄清楚如何将一个子节点添加到树视图

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); 
    } 
} 

我期待有一个父节点,“图形请求”,以增加儿童的其余节点。然而,我的名单看起来是这样的:

Resulting list

有人能告诉我,我缺少的是什么?

回答

2

您正在将节点添加到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); 
} 
+0

确认!我将节点添加到树视图本身,而不是树视图中的父节点。非常感谢!定时器启动后,我会立即给出答案。 – Kevin

+1

不客气。这是我们错过的简单的事情;) – Dumisani

1

您需要添加子节点的父节点的节点集合,否则他们都没有子节点,而是兄弟姐妹父节点。

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); 
} 
0

你必须做这样的事情要追加到父:

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

如果你想找到填充TreeView更多信息,我建议你将以下article

1

你先需要在根节点添加到树,只是后来添加的子节点:

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")); 
} 
1

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

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); 
}