我有以下樹:重新排序樹形節點僅被填充後[0]
Animals
|
|___Zebra
| |__Head
| |__Arms
| |__Legs
|
|___Monkey
|__Head
|__Arms
|__Legs
每個動物具有存儲在所述標籤字段的ID號和它們的名稱是在node.I的名稱字段想要按下「按ID排序」並將上面的「Zebra」變成「14」等的按鈕,然後按數字度假。但是,我希望孩子們留下頭部,手臂和腿部秩序。當我使用下面的代碼時,它可以工作,但它也會將頭臂分爲兩臂,頭部和腿部。我試過一個NodeSorter,但我沒有得到任何不同的結果。我對C#也很新,所以我可能會錯誤地實現它。 :)我也用一個額外的字段來存儲數據和布爾值的自定義節點。這就是「JacksNode」所指的下面。
下面的代碼:
public static void sortByAnimalID(TreeView tv)
{
tv.BeginUpdate();
foreach (TreeNode treeNode in tv.Nodes[0].Nodes)
{
if (((JacksNode)treeNode).IsAnimal)
{
treeNode.Text = Convert.ToString(treeNode.Tag);
treeNode.Name = Convert.ToString(treeNode.Tag);
}
}
tv.Sort();
tv.EndUpdate();
}
什麼我做錯了任何想法?我在網上搜索了兩週,並被所有的樹視圖文章淹沒了。但是,沒有一個是這個特定的。 謝謝你們有任何建議。
我拿出convert.ToInt32(實際上我用的α-NUMS)和它轉化爲動物標識工作正常。但是,如果我在將名稱換回後使用它,它不會再次排序。這很好,但。我可以使用基本的treeview.Sort()方法,它的工作正常。所以兩個按鈕,而不是一個。對於我正在做的事情來說,這不算什麼大事。我之前曾嘗試過這種解決方案,但我沒有在最後使用else索引比較。我是一個新手!哈哈感謝漢斯,這看起來像會起作用。 –