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

问题描述 投票:0回答:1

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

这也没有帮助。请帮我解决问题。

c# winforms datagridview setfocus
1个回答
0
投票

我认为您应该使用

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

© www.soinside.com 2019 - 2024. All rights reserved.