WITH This * Add the Root Node for Projects .oleTreeview.Nodes.Clear() lcKey = "_RP" lcText = "Projects" .oleTreeview.Nodes.Add(,,lcKey ,lcText ,lcImage ,lcSelectedImage) IF RECCOUNT("tmpPjt") > 0 * Add any Projects GOTO TOP IN tmpPjt SELECT tmpPjt DO WHILE NOT EOF() lcRelative = "_RP" lnRelationship = 4 lcKey = "PJT" + ALLTRIM(STR(tmpPjt.PjtId)) lcText = ALLTRIM(tmpPjt.PjtName) lcImage = "Pjt" lcSelectedImage = "Check" loLastPjt = .oleTreeview.Nodes.Add(lcRelative, ; lnRelationship, lcKey ,lcText ,lcImage ,lcSelectedImage) * Find any Catagories SELECT *; FROM Catagory; WHERE Catagory.PjtId = VAL(SUBSTR(loLastPjt.Key, 4)); ORDER BY Catagory.CatName; INTO CURSOR tmpCat SELECT tmpCat DO WHILE NOT EOF() lcRelative = loLastPjt.Key lnRelationship = 4 lcKey = "CAT" + ALLTRIM(STR(tmpCat.CatId)) lcText = ALLTRIM(tmpCat.CatName) lcImage = "Bridge" lcSelectedImage = "Check" loLastCat=.oleTreeview.Nodes.Add(lcRelative, ; lnRelationship, lcKey ,lcText ,lcImage ,lcSelectedImage) SELECT tmpCat SKIP IN tmpCat ENDDO SELECT tmpPjt SKIP IN tmpPjt ENDDO ENDIF In the treeview MouseDown IF nButton = 2 ThisForm.lRightMouse = .t. ELSE ThisForm.lRightMouse = .f. ENDIF In the treeview NodeClick IF ThisForm.lRightMouse = .T. DO PjtMenu.mpr WITH ThisForm ThisForm.lRightMouse = .F. ENDIF In the Form Init This.oleTreeview.ImageList = This.oleImagesList>Hello Gang,