IF; TYPE('.ACTIVECONTROL')=T_Object; AND !ISNULL(.ACTIVECONTROL) THEN lvActive = .ACTIVECONTROL IF LOWER(lvActive.BASECLASS)='grid' THEN lcGrid = SYS(1272,lvActive) IF TYPE('THISFORMSET')='O' lcGrid = 'THISFORMSET'+SUBSTR(lcGrid,AT(".",lcGrid)) ELSE lcGrid = 'THISFORM' +SUBSTR(lcGrid,AT(".",lcGrid)) ENDIF lnColumn = lvActive.ACTIVECOLUMN lnColumn = IIF(EMPTY(lnColumn),1,lnColumn) IF !EMPTY(lvActive.COLUMNCOUNT) THEN lcControl = lvActive.COLUMNS(lnColumn).CURRENTCONTROL *Assuming column.name is allways COLUMNnn lvActive = EVALUATE(lcGrid+'.COLUMN'+ALLTRIM(STR(lnColumn,3,0))+'.'+lcControl) ENDIF ENDIF *comparsion of Objects introduced with VFP 6.0? *only if there is an ACTIVEFORM (VFP 7.0 dockable Windows causes errors) IF; TYPE(APPLICATION.ACTIVEFORM)='O'; AND !ISNULL(APPLICATION.ACTIVEFORM); AND APPLICATION.ACTIVEFORM=THISFORM THEN lvActive.SETFOCUS() ENDIF ENDIFThis fails with ActiveX objects like DateTimePicker.