LOCAL loControl, lnActiveColumn, loColumn IF TYPE( '_Screen.Activeform.ActiveControl.Name' ) = 'C' loControl = _Screen.Activeform.ActiveControl IF LOWER( loControl.BaseClass ) = 'grid' *** Grids are special cases *** You have to specifically set focus to the active column *** in the grid. You have to loop through the grid's columns *** collection because active column actually refers to the grid's *** column order lnActiveColumn = loControl.ActiveColumn FOR EACH loColumn IN loControl IF loColumn.Columnorder = lnActiveColumn loColumn.Text1.SetFocus() EXIT ENDIF ENDFOR ELSE loControl.SetFocus() ENDIF ENDIFI wrote this code off the top of my head. It is untested and I do not guarantee that it is bug free. You will have to test it, but it gives you the general idea of what you need to do.