【问题标题】:Cancel next cell selection on datagrid cell value change在数据网格单元格值更改时取消下一个单元格选择
【发布时间】:2013-05-26 14:08:13
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:

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

    【讨论】:

    • 稍微修改了您使用的 2 行 o 将选择返回到第一个单元格,它就像一个魅力。除了一个小问题,我现在正在处理。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多