Писал тут тесты к статье и оказалось, что встроенные в TreeView средства сортировки дико тормозят.
Если использовать только встроенную сортировку по строкам (ххх.Sorted = false), то еще куда не шло (хотя тоже мало пригодно для больших деревьев).
Если же воспользоваться возможностью подключения внешнего компарера (xxx.TreeViewNodeSorter = new MyComparer()), то жутчайшие тормоза начинаются на совсем смешных объемах.
Причем ручная реализация сортировки робатает даже значительно быстрее нежели встроенная. Причем код имеет смехотворный размер:
/// <summary>
/// Рекурсивная сортировка веток TreeView.
/// </summary>
/// <param name="rootNodes">Коллекция веток подлежащая сортировке</param>
private static void SortTreeNodes(
TreeNodeCollection rootNodes,
IComparer<TreeNode> comparer)
{
int count = rootNodes.Count;
if (count == 0)
return;
// Копируем содержимое коллекции подветок в массив,
// сортируем этот массв, очищаем коллекцию и копируем
// подвекти обратно в коллекцию.
TreeNode[] nodeArray = new TreeNode[count];
rootNodes.CopyTo(nodeArray, 0);
Array.Sort<TreeNode>(nodeArray, comparer);
rootNodes.Clear();
rootNodes.AddRange(nodeArray);
// Сортируем все подветки
foreach (TreeNode node in nodeArray)
SortTreeNodes(node.Nodes, comparer);
}
В общем, дарю идею и надеюсь, что информация дойдет до тех кто занимается ВинФормсами.

... << RSDN@Home 1.1.4 beta 3 rev. 279>>