この問題が何であるかを理解するのに問題があります。私はグーグルで検索しましたが、この問題に対する多くの解決策を見つけていません。私が見つけた唯一の「解決策」は、最後のノードを展開してから折りたたむためのハックでした。
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);
}
}
}
これが、ノードをリストに追加する方法です。誰かがこの問題のクリーンな解決策を持っていますか?