朋友们,我有一个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条答案
按热度按时间j5fpnvbx1#
我认为您应该使用
CellValidating
事件来进行检查和验证。如果某些检查失败,您可以提示错误消息并设置e.handlede.Cancel= false
。这将使焦点保持在当前错误单元格中,直到您进行所需的更正。