@ahmed salah , Welcome to Microsoft Q&A, based on my test, I reproduced your problem. It seems that datagirdview will move cursor to the same column in the next row when we use the datagirdview keydown event.
I recommend that you use ProcessCmdKey method to do it and here is a code example you could refer to.
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
if (dataGridView1.CurrentRow != null)
dataGridView1.CurrentCell =
dataGridView1
.Rows[Math.Min(dataGridView1.CurrentRow.Index + 1, dataGridView1.Rows.Count - 1)]
.Cells[0];
}
return base.ProcessCmdKey(ref msg, keyData);
}
Note: Please delete the keydown event to avoid the conflict when we use the above method.
Tested result:
Best Regards,
Jack
If the answer is the right solution, please click "Accept Answer" and upvote it.If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.