Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#树视图列表子节点_C#_Treeview_Nodes - Fatal编程技术网

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个。我想加多少就加多少。他们仍然只增加了一个。这就是我创建循环的方式吗?您没有将硬件节点添加到硬件循环中的员工节点。它是在循环之外完成的,所以只有最后一个被添加。好的。如何为该员工的所有硬件节点创建一个员工节点?