我有以下树:重新排序树形节点仅被填充后[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索引比较。我是一个新手!哈哈感谢汉斯,这看起来像会起作用。 –