取消对datagrid单元格值更改的下一个单元格选择

时间:2013-05-26 14:08:13

标签: c# datagridview

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

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以定义一个标志,并在编辑发生时将其抬起(CellEndEdit事件)。然后在SelectionChanged事件中检查此标志并仅在标志值为true时设置新位置。

在下面发布的代码中,例如我将当前单元格设置为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;
    }
}
相关问题