CancelEdit不会将注意力集中在DataGridView c#中的已编辑单元格上

当我在DataGridView的单元格中输入一些值并单击另一个单元格时,将执行cellvalidating事件处理程序代码。 即使validation填充,我点击的单元格也会突出显示。 我的要求是单元格应保持选中状态,并且在删除无效值后,光标应在单元格中闪烁以进行编辑。 如果validation失败,请使用以下代码:

DataGridView1.CancelEdit(); 

我试过添加

 DataGridView1.CurrentCell.Selected = true; DataGridView1.BeginEdit(true); 

您需要使用e.Cancel = true如下所示。

 private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { int i; if (!int.TryParse(e.FormattedValue.ToString(), out i)) { e.Cancel = true; MessageBox.Show("Please input a integral number.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } 

我用上面的解决方案改变了我的代码并且它有效:

 private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) { DataGridView1.CancelEdit(); e.Cancel = true; DataGridView.BeginEdit(true); }