winforms 如何在验证错误后将焦点设置在datagridview中的特定单元格上?

iecba09b  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(91)

朋友们,我有一个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);

这也是没有用的,请帮我解决问题。

j5fpnvbx

j5fpnvbx1#

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

相关问题