Как отсортировать дочерний узел древовидного представления после расширения
у меня есть древовидный вид плана счетов, и я хочу отсортировать дерево после первого уровня, когда разверну любой родительский узел
Что я уже пробовал:
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
У меня нет мотивации отвечать кодом.