Не удается оставить фокус на той же ячейке в DataGridView в обработчике CellValueChanged (.NET) - PullRequest
0 голосов
/ 13 июля 2009

В обработчике событий для CellValueChanged для определенного условия я хочу, чтобы фокус оставался в ячейке и очищал ее содержимое. Происходит то, что фокус (курсор) находится в следующей ячейке, когда обработчик заканчивает свою работу. Он должен находиться в той же ячейке, которая вызвала событие.

MyGrid.CellValueChanged -= new DataGridViewCellEventHandler(CellValueChanged);
if (condition)
{
MyGrid.Rows[e.RowIndex].Cells["ColumnName"].Value = "";
MyGrid.CurrentCell = MyGrid["ColumnName", e.RowIndex];
MyGrid.BeginEdit(true);
return;
}

....

1 Ответ

0 голосов
/ 18 января 2011

Я думаю, что вы ищете событие CellValidating, а не событие измененного значения. Поместите этот условный код в это событие, и если это условие не выполнено, тогда сделайте e.Cancel = true, что сохранит фокус в той же ячейке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...