Друзья, у меня есть приложение для 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);
Это тоже бесполезно. Пожалуйста, помогите мне решить проблему.
Подробнее здесь:
https://stackoverflow.com/questions/986 ... tion-error