扩展节点时如何让TreeView更改其宽度,以使节点的标签完全显示。

首先,我设置DrawMode = OwnerDrawAll;

然后处理事件DrawNode和inin处理程序

e.DrawDefault = true;
currentWith_ = Math.Max(currentWith_, e.Node.Bounds.Right);


然后在AfterExpand中设置控件。但是并不是每次都有效。有时with不会更改或更改不正确。

如何解决此问题。
提前致谢。

最佳答案

试试这个,这个成功的:

private void treeViewAfterExpand(object sender, TreeViewEventArgs e)
{
    int maxRight = treeView.ClientSize.Width;

    if(e.Node.Nodes != null)
        foreach (TreeNode node in e.Node.Nodes)
        {
            maxRight = Math.Max(maxRight, node.Bounds.Right);
        }

    treeView.ClientSize = new Size(maxRight, treeView.ClientSize.Height);
}

07-26 02:51