我想动态地将一些子节点添加到TreeView
中的根节点。我有一些Array
字符串{"john", "sean", "edwin"}
,但它可以更大或更小。
我有这样一个根:
//Main Node (root)
string newNodeText = "Family 1"
TreeNode mainNode = new TreeNode(newNodeText, new TreeNode[] { /*HOW TO ADD DYNAMIC CHILDREN FROM ARRAY HERE?!?*/ });
mainNode.Name = "root";
mainNode.Tag = "Family 1;
我想用我的孩子们的名字来做这样的事情:
foreach (string item in xml.GetTestNames()) //xml.GetTestNames will return a string array of childs
{
TreeNode child = new TreeNode();
child.Name = item;
child.Text = item;
child.Tag = "Child";
child.NodeFont = new Font(listView1.Font, FontStyle.Regular);
}
但显然它不起作用。 提示:我的子阵列中有多少元素!!!!
编辑1:
我正在尝试:
//Make childs
TreeNode[] tree = new TreeNode[xml.GetTestsNumber()];
int i = 0;
foreach (string item in xml.GetTestNames())
{
textBox1.AppendText(item);
tree[i].Name = item;
tree[i].Text = item;
tree[i].Tag = "Child";
tree[i].NodeFont = new Font(listView1.Font, FontStyle.Regular);
i++;
}
//Main Node (root)
string newNodeText = xml.FileInfo("fileDeviceName") + " [" + fileName + "]"; //Text of a root node will have name of device also
TreeNode mainNode = new TreeNode(newNodeText, tree);
mainNode.Name = "root";
mainNode.Tag = pathToFile;
//Add the main node and its child to treeView
treeViewFiles.Nodes.AddRange(new TreeNode[] { mainNode });
但是这对我的treeView没有任何补充。
答案 0 :(得分:15)
您需要将子节点附加到父节点,这是一个示例:
TreeView myTreeView = new TreeView();
myTreeView.Nodes.Clear();
foreach (string parentText in xml.parent)
{
TreeNode parent = new TreeNode();
parent.Text = parentText;
myTreeView.Nodes.Add(treeNodeDivisions);
foreach (string childText in xml.child)
{
TreeNode child = new TreeNode();
child.Text = childText;
parent.Nodes.Add(child);
}
}
答案 1 :(得分:0)
我认为问题是你没有通知mainNode孩子是它的孩子,比如:mainNode.Children.Add(child)(在for块中)。您只需创建子节点,但不要对它进行任何操作,因为它与TreeView或mainNode有任何关系。