This is listed in our known defects database.
http://www.syncfusion.com/support/issues/grid/Default.aspx?ToDo=view&questId=283
You can tweak the work around given there to avoid the problem in your sample. It does require that you know the first and last enabled cell somehow.
private int lastEnabledRow = 8;
private int lastEnabledCol = 3;
private int firstEnabledRow = 2;
private int firstEnabledCol = 1;
private void gridControl1_CurrentCellControlKeyMessage(object sender, Syncfusion.Windows.Forms.Grid.GridCurrentCellControlKeyMessageEventArgs e)
{
GridControl grid = (GridControl) sender;
GridCurrentCell cc = grid.CurrentCell;
Keys keyCode = (Keys)((int)e.Msg.WParam) & Keys.KeyCode;
if(keyCode == Keys.Tab)
{
if( (cc.RowIndex == lastEnabledRow && cc.ColIndex == lastEnabledCol
&& 0 == (Control.ModifierKeys & Keys.Shift))
||
(cc.RowIndex == firstEnabledRow && cc.ColIndex == firstEnabledCol
&& 0 != (Control.ModifierKeys & Keys.Shift))
)
{
grid.CurrentCell.EndEdit();
grid.CurrentCell.BeginEdit();
e.Handled = true;
e.Result = true;
}
}
}