朋友们,我在Windows应用程序中使用datagridview来显示现有数据以及添加/编辑数据。 datagridview有一个功能,按Tab / Enter键按下焦点将移动到下一个单元格。如果它是一行中的最后一列,则焦点将转到下一行的第一列。现在输入单元格数据并按Tab / Enter键后,如果错误输入错误信息(如数值格式不正确或值小于等等),则显示错误信息后一个消息框,焦点正在移动到下一个单元格。有没有办法,如果特定单元格有错误消息,那么焦点将仅设置为该错误生成单元格,它不会移动到下一个单元格?在dgView_CellEndEdit事件中,我尝试使用代码选择单元格:
dgView.Rows[e.RowIndex].Cells["ColumnName"].Value = "0.00";
dgView.Select();
dgView.CurrentCell.Selected = true;
但它不起作用。在dgView_SelectionChanged事件中,我使用了:
dgView.CurrentCell = dgView[RequiredColumnIndex, RequiredRowIndex];
dgView.BeginEdit(true);
这也无济于事。请帮我解决问题。
答案 0 :(得分:0)
我认为您应该使用CellValidating
事件进行检查和验证。如果某些检查失败,您可以提示错误消息并设置 e.Handled e.Cancel= false
。这将使焦点保持在当前错误单元格中,直到您进行所需的更正。