【发布时间】:2011-11-20 08:29:08
【问题描述】:
我有以下树:
Animals
|
|___Zebra
| |__Head
| |__Arms
| |__Legs
|
|___Monkey
|__Head
|__Arms
|__Legs
每只动物都有一个 ID 号存储在 Tag 字段中,它们的名字在节点的 Name 字段中。我想按下一个按钮,上面写着“按 ID 排序”,让上面的“斑马”变成“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();
}
关于我做错了什么有什么想法吗?我已经在网上搜索了两个星期,并且被所有的树视图文章所淹没。然而,没有一个是这么具体的。 感谢伙计们/姑娘们的任何建议。
【问题讨论】:
标签: c# winforms sorting treeview