ibrahim maher Ответов: 0

Как отсортировать дочерний узел древовидного представления после расширения


у меня есть древовидный вид плана счетов, и я хочу отсортировать дерево после первого уровня, когда разверну любой родительский узел

Что я уже пробовал:

tvChartOfAccounts.Sort

BillWoodruff

Точно определите, что вы подразумеваете под "сортировкой": вы имеете в виду рекурсивное переупорядочение дочерних узлов ? На чем основана сортировка ? Почему узлы не добавляются в порядке сортировки ?

ibrahim maher

спасибо за ответ

Я хочу отсортировать(в порядке возрастания) дочерние узлы после развертывания любого родительского узла, потому что я хочу отсортировать все дерево без корневого уровня

Примечание : при построении дерева по таблице данных (строка SQL) Я использовал поданный заказ по коду, и поэтому дерево теперь появляется отсортированным по коду, а не по имени, но теперь я хочу показать его отсортированным по имени после расширения любого уровня (expand Event)

лучшие регрейды

BillWoodruff

Я работал с Win TreeView в течение многих лет; имхо, вы берете на себя много работы, когда хотите изменить положение дочерних узлов, сортируя их. Гораздо лучше сортировать с помощью запроса БД, используя тот же метод для создания узлов, отсортированных по имени, который вы используете сейчас для их создания, отсортированных по коду.

Но ответьте на эти вопросы, и я посмотрю, смогу ли вам помочь:

1. является ли treeview глубоко вложенным ?

2. являются ли дочерние узлы любого данного узла регулярными с точки зрения количества

3. разве вы не хотели бы иметь способ вернуться к сортировке по коду после сортировки по имени ?

Возможно, вы найдете какой-то код, который я написал здесь, полезным:

https://www.codeproject.com/Answers/1242930/Treeview-nodes-shown-in-listbox

ibrahim maher

Спасибо за ответ
ответьте на три вопроса :
1 - да древовидный вид глубоко вложен
2 - да
3-нет
примечание : Я использую объект dataSet для связи между родителем и дочерним элементом, чтобы заполнить дерево с помощью поля кода учетной записи, например :

dsTemp.Relations.Add("TempRepation", dtTemp.Столбцы[fldMainCode], dtTemp.Столбцы[fldSubCode])

и поэтому я не могу заполнить поле дерево по имени

BillWoodruff

Примечание: основываясь на вашем отсутствии реакции на усилия, которые я предпринял, чтобы помочь вам здесь:

https://www.codeproject.com/Answers/1213846/How-to-modify-text-or-caption-property-to-all-obje

У меня нет мотивации отвечать кодом.

0 Ответов