#DEFINE SCROLL_UP 0 #DEFINE SCROLL_DOWN 1 nDesiredRow = 5 && We want our current record to be displayed in this row. thisform.LockScreen = .t. && Lock screen so our grid scrolls aren't visible. WITH thisform.grid1 .setfocus && Grid must have focus for RelativeRow property to be valid. .refresh && update grid so the "current" record is visible. DO CASE CASE .RelativeRow < nDesiredRow * Current record is displayed above where we want it. Scroll grid up. FOR nScroll = 1 TO (nDesiredRow - .RelativeRow) .DoScroll(SCROLL_UP) ENDFOR CASE .RelativeRow > nDesiredRow * Current record is displayed below where we want it. Scroll grid down. FOR nScroll = 1 TO (.RelativeRow - nDesiredRow) .DoScroll(SCROLL_DOWN) ENDFOR OTHERWISE * Either we're already in the right spot, or RelativeRow is 0. ENDCASE ENDWITH thisform.lockscreen = .f.I haven't used this technique much, so I can't guarantee that it will work in all situations.