我在弄清楚这个问题是什么时遇到了问题。我用谷歌搜索并没有找到很多解决这个问题的方法。我发现的唯一“解决方案”是扩展然后折叠最后一个节点的技巧。
this.Nodes[this.Nodes.Count - 1].Expand();
this.Nodes[this.Nodes.Count - 1].Collapse();
正如您从该屏幕截图中看到的,最后一个节点被部分切断,唯一暴露它的方法是展开节点,这将导致 TreeView 正确地重新呈现自身。
我务实地将节点添加到 TreeView。我不知道这是否会影响结果,但我已将 TreeView 扩展到我自己的类,因此我可以向它添加一些属性和方法。
public class MyTreeView : TreeView
{
public void BuildTree()
{
this.Nodes.Clear();
foreach (TestSetFolder folder in Folders)
{
MyTreeNode node = new MyTreeNode();
node.Name = folder.Name;
node.Text = folder.Name;
node.Tag = folder;
node.FolderID = folder.NodeID;
node.IsPopulated = false;
this.Nodes.Add(node);
}
}
}
这就是我将节点添加到列表中的方式。有没有人有一个干净的解决方案来解决这个问题?