C# 在c中向树节点动态添加child#
我想在我的C# 在c中向树节点动态添加child#,c#,treeview,C#,Treeview,我想在我的TreeView中将一些子节点动态添加到根节点。我有一个字符串数组,其中有一些名字,比如{“john”、“sean”、“edwin”},但它可以大一些,也可以小一些 我有这样一个根: //Main Node (root) string newNodeText = "Family 1" TreeNode mainNode = new TreeNode(newNodeText, new TreeNode[] { /*HOW TO ADD DY
TreeView
中将一些子节点动态添加到根节点。我有一个字符串数组
,其中有一些名字,比如{“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 });
但这不会给我的树视图添加任何内容。我认为问题在于您没有通知主节点子节点是它的子节点,类似于:mainNode.children.add(child)(在for块中)。您只需创建子节点,但不需要对其执行任何操作,即可使其与TreeView或Main节点建立任何关系。您需要将子节点附加到父节点,以下是一个示例:
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);
}
}