Varun Sareen Ответов: 1

Как установить фокус на текущей ячейке при ошибке проверки в gridview?


Хи Друзья,

Я пытаюсь установить фокус на текущей ячейке представления сетки в приложении windows с помощью C#. Если данные, введенные в ячейку, недействительны, то после отображения соответствующего запроса фокус курсора должен быть установлен на текущую ячейку, но не на следующую ячейку, так как я также написал функциональность перемещения курсора в следующую ячейку в событии GridView keydown.

Пожалуйста, помогите мне решить эту проблему.

Спасибо
Варун

Что я уже пробовал:

private void dvItemGrid_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            if (dvItemGrid.Columns[e.ColumnIndex].Name == "ItemID")
            {
                string strItemID = e.FormattedValue.ToString();
                if (strItemID == "")
                {
                    MessageBox.Show("Item ID cannot be blank.");
                    dvItemGrid.CurrentCell = this.dvItemGrid.Rows[e.RowIndex].Cells[e.ColumnIndex];
                    return;
                }
            }
        }
        private void dvItemGrid_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                e.SuppressKeyPress = true;

                int iColumn = dvItemGrid.CurrentCell.ColumnIndex;
                int iRow = dvItemGrid.CurrentCell.RowIndex;
                if (iColumn == dvItemGrid.ColumnCount - 1)
                    dvItemGrid.CurrentCell = dvItemGrid[1, iRow - 1];
                else
                    dvItemGrid.CurrentCell = dvItemGrid[iColumn + 1, iRow];
            }
        }

1 Ответов

Рейтинг:
1

JoaniSilva

Попробуйте использовать объект "отправитель" и "Е" из своего dvItemGrid_CellValidating пустоты, он обладает свойствами, вы должны обращаться , давайте предположим, что объект "е" с индексом собственность. таким образом, вы можете приписать этот индекс общедоступному int var и после этого установить фокус на этот индекс.