&&Anywhere in the form local oMyObjects oMyObjects=createobject('myFormObjects') oMyObjects.go_all_over(thisform) * this class has to be added to some prg that * is visible to vfp, by having 'set procedure' set to it (additive) ***Class Object define class myFormObjects as custom procedure go_all_over LPARAMETERS ParentContainer LOCAL i,oControl FOR each oControl in ParentContainer.Controls DO case CASE oControl.baseclass=="Pageframe" FOR i = 1 to oControl.Pagecount this.go_all_over(oControl.Pages(i)) NEXT CASE oControl.baseclass=="Container" this.go_all_over(oControl) CASE oControl.baseclass=="Grid" FOR i = 1 to oControl.columncount this.go_all_over(oControl.columns(i)) NEXT OTHERWISE this.do_the_thing(oControl) ENDCASE NEXT this.do_the_thing(ParentContainer) procedure do_the_thing lParameters oControl if oControl.baseclass='TEXTBOX' **Do whatever endifEven better wld be to subclass it and then write 'do_the_thing' method