扩展节点时如何让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);
}