Лучший способ горизонтального автоматического изменения размера элемента управления WinForms TreeView? - PullRequest
3 голосов
/ 12 апреля 2009

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

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

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

1006 * * * Mark 1007 *

1 Ответ

1 голос
/ 12 апреля 2009

Попробуйте отсканировать список, рассчитав максимум:

text_width + indent_size * indent_level + image_width

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

...