3

问题是,每次我在 dataGridView 中编辑一个单元格并按 Enter 提交更改时,它都会自动将当前单元格选择移动到列中的下一个单元格。另一方面,我希望它移动到行中的下一个单元格,我已经编写了代码来执行此操作,但是我无法取消默认操作,并且它同时更改了行和列。

关于如何停止数据网格在值更改时将选择移动到下一列单元格的任何帮助?

提前致谢。

4

1 回答 1

2

您可以定义一个标志并在发生编辑(CellEndEdit事件)时引发它。然后, SelectionChanged如果您检查此标志并仅在标志值为真时设置新位置。

例如,在下面发布的代码中,我将当前单元格设置为 的第一个单元格DataGridView,避免默认行为:

private bool flag_cell_edited;

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    flag_cell_edited = true;
}

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (flag_cell_edited) {
        DataGridViewCell cell = dataGridView1.Rows[0].Cells[0];
        dataGridView1.CurrentCell = cell;
        //set flag value back to false
        flag_cell_edited = false;
    }
}
于 2013-05-26T21:43:15.043 回答