按enter键移动到下一个单元格
本文关键字:下一个 单元格 移动 enter | 更新日期: 2023-09-27 17:57:34
我需要更改数据网格视图中的Enter键功能,我想防止它转到新行,我需要它移动到下一个单元格。我尝试了很多逻辑来做到这一点,但都没有成功,最后一个是
if (e.KeyData == Keys.Enter)
{
int col = dgvPayments.CurrentCell.ColumnIndex;
int row = dgvPayments.CurrentCell.RowIndex;
if (col < dgvPayments.ColumnCount - 1)
{
col++;
}
else
{
col = 0;
row++;
}
if (row == dgvPayments.RowCount)
dgvPayments.Rows.Add();
dgvPayments.CurrentCell = dgvPayments[col, row];
e.Handled = true;
}
当只按Enter而不是在编辑单元格后,如果我输入一个单元格并对其进行编辑,然后按键enter,它将转到我所在的下一行和列。
试试这个
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress=true;
int iColumn = dataGridView1.CurrentCell.ColumnIndex;
int iRow = dataGridView1.CurrentCell.RowIndex;
if (iColumn == dataGridView1.Columns.Count-1)
dataGridView1.CurrentCell = dataGridView1[0, iRow + 1];
else
dataGridView1.CurrentCell = dataGridView1[iColumn + 1, iRow];
}
}