0
メインスレッド(Windowsフォーム)をブロックしないようにTreeNodeコレクションを設定するスレッドが1つあります。だから私は、これらの線でTreeView.Nodes.Addコマンドを呼び出す:treeviewの最初の項目はnullです
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());
}
}
を、私はこれを得た:私は最初のヌル要素を望んでいない
。どのように私はこれを通過することができますか?
'ツリーノードラシーン=新しいツリーノード()上記のようにルートに設定されたデフォルトのノード。 TreeNode NET = racine.Nodes.Add( "Net"); 'これは空ではありませんが空にしますか?私には意味がありません –
あなたがそれを望まないなら、「racine」ノードを投げ捨ててください。 'NET'ノードのみを使用してください。 –
ああはい、それは愚かでした。ありがとう –