当数据表单元格值发生变化时,取消下一个单元格的选择。

3
每次我在dataGridView中编辑单元格并按回车键提交更改时,问题就出现了,它会自动将当前单元格选择移动到列中的下一个单元格。与此同时,我希望它能够移动到行中的下一个单元格,我已经编写了代码来实现这一点,但我无法取消默认操作,因为它会同时更改行和列。
请问如何阻止datagrid在值更改时将选择移动到下一个列单元格?
提前感谢您的帮助。
1个回答

2
你可以定义一个标志,并在编辑发生时(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;
    }
}

我稍微修改了你用来返回选择到第一个单元格的两行代码,现在它完美地运行了。除了一个小问题,我正在处理它。非常感谢 :) - Mitsosp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接