Maybe a step by step would help. Let me see if I have this straight.
1. you move to a record number - maybe SEEK cSomeKey, or GOTO 500, or LOCATE cSomeField = cSomeVar, or whatever MARC WROTE: I use LOCATE.
2. mygrid.setfocus() MARC WROTE: Yes, but that is the cause of the problem.
When I do not a SetFocus, nothing move. But with a SetFocus, I lost the first column move to first position.
3. mygrid.refresh() MARC WROTE: Yes, but before the SetFocus.
At which point, the record pointer is sitting at record number 1 in the table (and it should not be)?
Is there any code in the grid refresh()? MARC WROTE: No.
Alan