>I ´ve downloaded a grid's class from Portalfox (Luis María Guayan was its author) which has two methods.
>1) PreservarColumnas()-which keeps all grid's properties
>2-RestaurarColumnas() restores all grid's properties.
>
>*-- Grid::PreservarColumnas
>LOCAL lo
>FOR EACH lo IN THIS.COLUMNS
> STORE lo.CONTROLSOURCE TO ("lo."+lo.CURRENTCONTROL+".Tag")
>ENDF
>THIS.TAG = THIS.RECORDSOURCE
>THIS.RECORDSOURCE=""
>
>*-- Grid::RestaurarColumnas
>LPARAMETERS lcAlias && si no está en la grilla debe especificarse acá
>LOCAL lo, lc
>THIS.RECORDSOURCE = IIF(NOT EMPTY(lcAlias),lcAlias,THIS.TAG)
>FOR EACH lo IN THIS.COLUMNS
> lc = EVAL("lo."+lo.CURRENTCONTROL+".Tag")
> IF NOT EMPTY(lc)
> IF NOT '.'$lc && sin alias asignado: lo asigna ahora
> lc = THIS.RECORDSOURCE+'.'+lc
> ENDIF
> lo.CONTROLSOURCE = lc
> ENDIF
>ENDFOR
>
>
>Working with VFP8 i add a grid based on my class, set grid properties at design time, and set form's bindcontrols=.f. and put this code in Init method works fine
>
>*Init code
>THISFORM.LOCKSCREEN=.T.
>THISFORM.Migrid1.PreservarColumnas() &&to keep grid column's properties
>**code to load your cursor
>thisform.migrid1.restaurarcolumnas('yourcursorname')
>thisfom.bindcontrols=.t.
>thisform.Refresh()
>thisform.LockScreen= .F.
Thanks for the additional info.