C# 树视图的第一项为空

C# 树视图的第一项为空,c#,.net,winforms,treeview,C#,.net,Winforms,Treeview,我有一个线程将填充TreeNode集合,以不阻止主线程(windows窗体)。因此,我通过这些行调用TreeView.Nodes.Add命令: private void generateListeItems() { try { Item_Coll resultSet = connector.command_LIST(); if(mainFormInvoke != nul

我有一个线程将填充TreeNode集合,以不阻止主线程(windows窗体)。因此,我通过这些行调用TreeView.Nodes.Add命令:

private void generateListeItems()
        {
            try
            {
                Item_Coll resultSet = connector.command_LIST();
                if(mainFormInvoke != null)
                    mainFormInvoke(formProgressBar, -1);
                TreeNode racine = new TreeNode();
                TreeNode NET = racine.Nodes.Add("Net");
                TreeNode LON = NET.Nodes.Add("LON");
                List<string> devices = new List<string>();

                TreeNode lastDevice = null;
                int lastDevice_index = -1;
                TreeNode lastDevice_fb = null;
                int lastDevice_fb_index = -1;
                int percentage = 0, lastPercentage = 0, treatedItem = 0;
                int nombreIndex = resultSet.Item.Count<Item>();
                foreach (Item index in resultSet.Item)
                {
                    string[] substring = index.UCPTname.Split('/');
                    if (lastDevice == null || substring[2] != lastDevice.Text)
                    {
                        lastDevice = LON.Nodes.Add(substring[2]);
                        lastDevice_index++;
                        lastDevice_fb_index = -1;
                    }

                    if (lastDevice_fb == null || substring[3] != lastDevice_fb.Text)
                    {
                        lastDevice_fb = lastDevice.Nodes.Add(substring[3]);
                        lastDevice_fb_index++;
                    }

                    lastDevice_fb.Nodes.Add(substring[4]);
                    dpDictionnary[index.UCPTname] = index;
                    lastPercentage = percentage;
                    percentage = ++treatedItem * (nombreIndex / 100);
                    if(percentage != lastPercentage)
                        mainFormInvoke(formProgressBar, 1);
                }

                mainFormInvoke((updatingListeInUI)liste.Nodes.Add, racine);
                mainFormInvoke(consoleWriter,string.Format("Connexion réussie, récupération de {0} éléments", resultSet.Item.Count<Item>()));
            }catch(SmartServerException e)
            {
                mainFormInvoke(consoleWriter, e.ToString());
            }

        }
private void generateListeItems()
{
尝试
{
Item_Coll resultSet=connector.command_LIST();
如果(mainFormInvoke!=null)
mainFormInvoke(formProgressBar,-1);
TreeNode racine=新的TreeNode();
TreeNode NET=racine.Nodes.Add(“NET”);
TreeNode LON=NET.Nodes.Add(“LON”);
列表设备=新列表();
TreeNode lastDevice=null;
int lastDevice_index=-1;
TreeNode lastDevice_fb=null;
int lastDevice_fb_index=-1;
int百分比=0,lastPercentage=0,treatedItem=0;
int nombreIndex=resultSet.Item.Count();
foreach(resultSet.Item中的项索引)
{
string[]substring=index.UCPTname.Split('/');
if(lastDevice==null | |子字符串[2]!=lastDevice.Text)
{
lastDevice=LON.Nodes.Add(子字符串[2]);
lastDevice_index++;
lastDevice_fb_索引=-1;
}
if(lastDevice_fb==null | |子字符串[3]!=lastDevice_fb.Text)
{
lastDevice_fb=lastDevice.Nodes.Add(子字符串[3]);
lastDevice_fb_index++;
}
添加(子字符串[4]);
dpDictionnary[index.UCPTname]=索引;
最后百分比=百分比;
百分比=++treatedItem*(标称指数/100);
如果(百分比!=最后百分比)
mainFormInvoke(formProgressBar,1);
}
mainFormInvoke((updateinglistinui)liste.Nodes.Add,racine);
mainFormInvoke(consoleWriter,string.Format(“Connexion réussie,récupération de{0}元素”,resultSet.Item.Count());
}捕获(智能服务器异常)
{
mainFormInvoke(控制台编写器,例如ToString());
}
}
我得到了这个:

我不想要第一个空元素。我怎么才能通过这个

TreeNode racine = new TreeNode("Root");
TreeNode NET = racine.Nodes.Add("Net");
TreeNode LON = NET.Nodes.Add("LON");

如上所示,将默认节点设置为root
TreeNode racine=new TreeNode();TreeNode NET=racine.Nodes.Add(“NET”)你不希望这个是空的,但你让它是空的?如果你不想要的话,把
racine
节点删除没有任何意义。只使用
NET
节点。哦。是的,这很愚蠢。谢谢