如何在验证错误后将焦点设置在数据网格视图中的特定单元格上

本文关键字:视图 网格 单元格 数据网 数据 错误 验证 设置 焦点 | 更新日期: 2023-09-27 18:29:04

朋友们,我有一个windows应用程序,在那里我使用数据网格视图来显示现有数据以及添加/编辑数据。数据网格视图有一个功能,按下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);

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

如何在验证错误后将焦点设置在数据网格视图中的特定单元格上

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