1

我需要更改Enterdatagridview 中的关键功能,我想阻止它进入新行我需要它移动到下一个单元格我尝试了很多逻辑来做到这一点但没有成功最后一个是

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在编辑单元格后按 not 时效果很好,如果我输入一个单元格并对其进行编辑并按下Enter它在我进入后进入下一行和列的键。

4

1 回答 1

0

尝试这个

    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];

        }
    }
于 2013-02-04T11:32:26.837 回答