INIT: if !empty(This.RecordSource) and reccount(This.RecordSource) > 0 This.OldActiveRow = RecNo() else This.OldActiveRow = 0 endif BEFOREROWCOLCHANGE: LPARAMETERS nColIndex if !empty(This.RecordSource) and reccount(This.RecordSource) > 0 This.OldActiveRow = RecNo(This.RecordSource) else This.OldActiveRow = 0 endif AFTERROWCOLCHANGE: LPARAMETERS nColIndex if !empty(This.RecordSource) and reccount(This.RecordSource) > 0 if This.OldActiveRow <> RecNo(This.RecordSource) This.GridRowChange() && custom method where I put any additional code ThisForm.Refresh() endif endif