如何在验证错误后将重点放在datagridview中的特定单元格上?

时间:2012-03-26 08:11:12

标签: c# winforms datagridview setfocus

朋友们,我在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);

这也无济于事。请帮我解决问题。

1 个答案:

答案 0 :(得分:0)

我认为您应该使用CellValidating事件进行检查和验证。如果某些检查失败,您可以提示错误消息并设置 e.Handled e.Cancel= false。这将使焦点保持在当前错误单元格中,直到您进行所需的更正。