在CellValueChanged的事件处理程序中,对于某个条件,我希望焦点保留在单元格中并清除其内容。当处理程序完成其工作时,焦点(光标)在下一个单元格中发生了什么。它需要在导致事件的同一个单元格中。
MyGrid.CellValueChanged -= new DataGridViewCellEventHandler(CellValueChanged);
if (condition)
{
MyGrid.Rows[e.RowIndex].Cells["ColumnName"].Value = "";
MyGrid.CurrentCell = MyGrid["ColumnName", e.RowIndex];
MyGrid.BeginEdit(true);
return;
}
...
答案 0 :(得分:0)
我认为您正在寻找CellValidating事件而不是值更改事件。将该条件代码放在此事件中,如果该条件失败,则使e.Cancel = true,这将使焦点保持在同一单元格中。