Как я могу получить полный размер дерева в Windows Forms? - PullRequest
0 голосов
/ 08 марта 2012

У меня нет опции «AutoSize» в TreeView, но мне нужно знать, какую полную высоту и полную ширину принимает объект.Я могу определить только размер панели TreeView, которая показывает полосу прокрутки, когда контент перекрывает указанный размер.

Есть ли способ узнать, насколько велик действительно отображаемый контент?

1 Ответ

2 голосов
/ 09 марта 2012

Если вы хотите знать абсолютное дно области содержимого (только то, что расширено), то вы можете использовать свойство Nodes со свойством Bounds для получения видимой высоты.

TreeNode tn = tv.Nodes[tv.Nodes.Count - 1];
while(tn.IsExpanded)
    tn = tn.Nodes[tn.Nodes.Count - 1];
return tn.Bounds.Bottom;

Просто убедитесь, чтоиметь правильную проверку ошибок (на самом деле TreeView имеет HAS-узлы и т. д.).Что касается ширины, не помню точно, как я это сделал.Однако вы можете использовать само свойство Bounds TreeView (может потребоваться некоторое тестирование).У меня была похожая ситуация, когда у меня не было AutoSizing TreeView, но он содержался в панели и заливался заливкой, поэтому мне нужно было самому обрабатывать полосы прокрутки, изменяя размеры дерева в Expand / Collapse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...