I agree it has its problems. I lock the screen (thisform.lockscreen = .T.) in the BeforeRowColChange event, and release it in the AfterRowColChange event. This smoothed out the keyboard tabbing but scrolling is a bit jumpy. I have also used a technique which involves manipulating the partition value of the grid, using transparent controls to hide the split bar, keeping track of the active column and resetting it when the active column is equal to the number of colums in the grid. Code was put in the after and before rowcolchange events.
If you find a better solution let me know. There has to be a better way than this. My question is that it seems to me that freezing columns in a grid is such obvious need, why did not the VFP team provide this capability to us out of the box?