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); }