【发布时间】:2013-05-26 14:08:13
【问题描述】:
问题是,每次我在 dataGridView 中编辑一个单元格并按 Enter 提交更改时,它都会自动将当前单元格选择移动到列中的下一个单元格。 另一方面,我希望它移动到行中的下一个单元格,我已经编写了代码 这样做,但我无法取消默认操作,它会更改行和列。
有关如何停止数据网格在值更改时将选择移动到下一列单元格的任何帮助?
提前致谢。
【问题讨论】:
标签: c# datagridview
问题是,每次我在 dataGridView 中编辑一个单元格并按 Enter 提交更改时,它都会自动将当前单元格选择移动到列中的下一个单元格。 另一方面,我希望它移动到行中的下一个单元格,我已经编写了代码 这样做,但我无法取消默认操作,它会更改行和列。
有关如何停止数据网格在值更改时将选择移动到下一列单元格的任何帮助?
提前致谢。
【问题讨论】:
标签: c# datagridview
您可以定义一个标志并在发生编辑时引发它(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;
}
}
【讨论】: