<b>INIT method:</b>** Add the root node This.nodes.Add(,0 , 'ROOT-KEY-0', 'Test', , ) This.nodes.Add('ROOT-KEY-0', 4, 'DUMMY-ROOT-KEY', 'DUMMY', , ) ** Add a property to store the last used level of the treeview so we can ** build a unique key for the expample. Thisform.AddProperty("treeViewLevel", 1) <b>Expand event:</b> *** ActiveX Control Event *** Lparameters Node ** Increment the level for the node keys Local tvLevel tvLevel = Thisform.treeViewLevel + 1 Thisform.treeViewLevel = tvLevel ** Remove the dummy if it's there. If Node.Child.Text == 'DUMMY' This.Nodes.Remove(Node.Child.Index) Endif ** Add some kids Local i, newKey For i = 1 To 10 newKey = Transform(tvLevel) + "-" + Transform(i) This.Nodes.Add(Node.Key, 4, newKey, newKey, , ) This.Nodes.Add(newKey, 4, 'DUMMY' + "-" + newKey, 'DUMMY', , ) Next <b>** Here is the fix to the scroll problem.</b> ** Force to scroll properly. ** This makes the bottommost child node visible, which will force ** the treeview to scroll if the node is off the screen. <b>Node.lastsibling.EnsureVisible</b> ** now make the parent node (the one that was expanded) visible. <b>Node.EnsureVisible</b>