Ah that was it. Was just taking a long time. Funnily enough, I built a Treeview for my app (see my sig) that does EXACTLY the same thing!

I didn't bother making it a separate control though. Now I can't decide whether to stick with my code or use your control