Could anyone pass on any advice or experience on the best and fastest methods of populating a treeview control?

I don't want to read in the entire tree data initially and populate the entire tree, however I would prefer to populate it only as a node is expanded.

On top of that the most important things is that even though a node hasn't been expanded yet I want to have the "plus" sign show that there are children.

I have been doing this up to know by changing an icon that I use against each node, however I want to set the "plus" symbol in the treeview lines.