Если у вас есть IComparer, похоже, вы можете установить для него свойство TreeViewNodeSorter , а затем вызвать Sort, чтобы узлы были отсортированы по вашему желанию.
Пример на основе этой ссылки- не пробовал, нет нулевых проверок и т. д., но он должен работать:
public class NodeSorter : IComparer
{
public int Compare(object x, object y)
{
TreeNode tx = x as TreeNode;
TreeNode ty = y as TreeNode;
return string.Compare(tx.Tag.ToString(), ty.Tag.ToString());
}
}
Затем treeView1.TreeViewNodeSorter = new NodeSorter();
где-то в вашей настройке.