Необходимо устанавливать ширину дерева по максимальной ширине содержимого. Но ширина отступа вложенных элементов никаким образом не учитывается. Можно ли вычислить эту ширину каким либо образом?
Сейчас делаю вот так:
private int GetMaxNodeWidth(TreeNodeCollection nodes, int width)
{
if (nodes != null)
foreach (TreeNode node in nodes)
{
width = Math.Max(width, node.Bounds.Right);
width = GetMaxNodeWidth(node.Nodes, width);
}
return width;
}
private int ResizeTreeView(TreeView tree)
{
int width = GetMaxNodeWidth(tree.Nodes, 0);
tree.ClientSize = new Size(width, tree.ClientSize.Height);
return tree.ClientSize.Width;
}