Three steps to do the trick:
1 - Set TreeView.ExpandDepth to 0. This eliminates the extension of the added TreeNode objects in the TreeView and displays the extension symbol [+] next to each TreeNode whose TreeNode.PopulateOnDemand property TreeNode.PopulateOnDemand set to true.
2- Set TreeNode.PopulateOnDemand to True for each TreeNode branch. When the TreeNode.ChildNodes collection TreeNode.ChildNodes empty, the extension character [+] will only be shown next to TreeNode objects whose TreeNode.PopulateOnDemand property TreeNode.PopulateOnDemand set to true.
3- Handle the TreeView.TreeNodePopulate event to bring the branch branches to the extension. This event will TreeNode if the TreeNode — with the TreeNode.PopulateOnDemand parameter set to true — has been extended before the TreeView.TreeNodeExpanded event TreeView.TreeNodeExpanded .
source share