C#树视图列表子节点
我无法正确列出所有子节点。我有一份“员工”名单,里面有一份硬件检查清单。员工姓名和身份证显示得很好。我只能检查一个以上的硬件 这是我到目前为止所拥有的C#树视图列表子节点,c#,treeview,nodes,C#,Treeview,Nodes,我无法正确列出所有子节点。我有一份“员工”名单,里面有一份硬件检查清单。员工姓名和身份证显示得很好。我只能检查一个以上的硬件 这是我到目前为止所拥有的 private void PopulateTreeView() { // sorts the fields by ascending order. frmCheckOut.checkedOutItem.SortList(); // Clears the Tree View so there
private void PopulateTreeView()
{
// sorts the fields by ascending order.
frmCheckOut.checkedOutItem.SortList();
// Clears the Tree View so there is no duplicate entries.
tvInventory.Nodes.Clear();
TreeNode date = new TreeNode();
TreeNode[] nodeArray = new TreeNode[1];
TreeNode itemDescription = new TreeNode();
TreeNode[] nodeArray2 = new TreeNode[1];
TreeNode treeNode = new TreeNode();
foreach(CheckOutItem item in frmCheckOut.checkedOutItem.itemCollection)
{
foreach (Hardware h in item.hardware)
{
date = new TreeNode(h.Date);
nodeArray = new TreeNode[] { date };
itemDescription = new TreeNode(h.HName + ": " + h.TagNumber, nodeArray);
nodeArray2 = new TreeNode[] { itemDescription };
}
treeNode = new TreeNode(item.EmpNumber + " " + item.LastName + ", " + item.FirstName + "<" + item.Email + ">", nodeArray2);
tvInventory.Nodes.Add(treeNode);
}
}
private void PopulateTreeView()
{
//按升序对字段进行排序。
frmCheckOut.checkedOutItem.SortList();
//清除树状视图,以便不存在重复条目。
tvInventory.Nodes.Clear();
TreeNode日期=新的TreeNode();
TreeNode[]节点阵列=新的TreeNode[1];
TreeNode itemDescription=新的TreeNode();
TreeNode[]节点array2=新的TreeNode[1];
TreeNode TreeNode=新的TreeNode();
foreach(frmCheckOut.checkedOutItem.itemCollection中的CheckOutItem项)
{
foreach(硬件项中的硬件h)
{
日期=新TreeNode(h.日期);
noderray=newtreenode[]{date};
itemDescription=新的TreeNode(h.HName+“:”+h.TagNumber,nodeArray);
noderaray2=新树节点[]{itemsdescription};
}
treeNode=新的treeNode(item.EmpNumber+“”+item.LastName+“”,“+item.FirstName+”,nodeArray2);
tvInventory.Nodes.Add(treeNode);
}
}
你知道我做错了什么吗?在把它弄得一团糟之后。我想出了这个解决办法。它工作得很好。谢谢大家的评论
private void PopulateTreeView()
{
// sorts the fields by ascending order.
frmCheckOut.checkedOutItem.SortList();
// Clears the Tree View so there is no duplicate entries.
tvInventory.Nodes.Clear();
TreeNode treeNode = new TreeNode();
foreach(CheckOutItem item in frmCheckOut.checkedOutItem.itemCollection)
{
treeNode = new TreeNode(item.EmpNumber + " " + item.LastName + ", " + item.FirstName + "<" + item.Email + ">");
tvInventory.Nodes.Add(treeNode);
}
AddChildNodes();
}
private void AddChildNodes()
{
TreeNode date = new TreeNode();
TreeNode[] nodeArray = new TreeNode[1];
TreeNode itemDescription = new TreeNode();
TreeNode[] nodeArray2 = new TreeNode[1];
for (int i = 0; i < tvInventory.Nodes.Count; i++)
{
foreach (CheckOutItem item in frmCheckOut.checkedOutItem.itemCollection)
{
foreach (Hardware h in item.hardware)
{
date = new TreeNode(h.Date);
nodeArray = new TreeNode[] { date };
itemDescription = new TreeNode(h.HName + ": " + h.TagNumber, nodeArray);
tvInventory.Nodes[i].Nodes.Add(itemDescription);
}
}
}
}
private void PopulateTreeView()
{
//按升序对字段进行排序。
frmCheckOut.checkedOutItem.SortList();
//清除树状视图,以便不存在重复条目。
tvInventory.Nodes.Clear();
TreeNode TreeNode=新的TreeNode();
foreach(frmCheckOut.checkedOutItem.itemCollection中的CheckOutItem项)
{
treeNode=新的treeNode(item.EmpNumber+“”+item.LastName+“”,“+item.FirstName+”);
tvInventory.Nodes.Add(treeNode);
}
AddChildNodes();
}
私有void AddChildNodes()
{
TreeNode日期=新的TreeNode();
TreeNode[]节点阵列=新的TreeNode[1];
TreeNode itemDescription=新的TreeNode();
TreeNode[]节点array2=新的TreeNode[1];
对于(int i=0;i
您是否尝试查看CheckOutItem“item”中有多少硬件对象计数是多少(.count)?有2个。我想加多少就加多少。他们仍然只增加了一个。这就是我创建循环的方式吗?您没有将硬件节点添加到硬件循环中的员工节点。它是在循环之外完成的,所以只有最后一个被添加。好的。如何为该员工的所有硬件节点创建一个员工节点?