2009-04-11 2 views
3

У меня есть элемент управления TreeView в WinForms, который заполнен из широкого спектра содержимого базы данных. Мне нужно вычислить минимальную ширину элемента управления TreeView (после заполнения), чтобы горизонтальные полосы прокрутки не нужны для просмотра содержимого. Расчет должен учитывать размер самого длинного текста в дереве, но ему также необходимо учитывать уровень отступа, иерархическую графику и т. Д.Лучший способ горизонтального автозамены элемента управления TreeView WinForms?

Я не вижу очевидного способа горизонтального автообновления элемента управления древовидной структурой, основанного на его содержание. Кто-нибудь нашел хороший способ сделать это?

Заранее спасибо ...

Марк

ответ

1

Try сканирование по списку, вычисляя максимум:

text_width + indent_size * indent_level + image_width 

одной итерации по списку должно привести к довольно хорошей оценкой по ширине дерева. Возможно, вы захотите перебрать все узлы или только видимые узлы в зависимости от вашего приложения.

Смежные вопросы