bhe io ho usato l'evento keypress per intercettare key.tab (altrimenti mi mandava il focus su di un altro oggetto nel form).
Poi con keyrelease (che ho chiamato Event_KeyRelease() nella classe gridbox) incremento di uno la proprieta' .column e con la sub Refresh() (che non e' il refresh della gridview ma una sub scritta per colorare righe e celle) mi ricolora la cella selezionata.
quando .column = .columns.count -1 allora incremento .row di uno e mi sposto con .column = 0 sulla prima colonna, e così via...
non so se sono stato chiaro o ti ho solo fatto fare confusione
al massimo ti mando un altro esempio con una semplice griglia senza textbox o altri pggetti.