Как я могу изменить то, что происходит при нажатии клавиши «ввод» в DataGridView? - PullRequest
1 голос
/ 27 марта 2010

когда я редактирую ячейку и нажимаю ввод, автоматически выбирается следующая строка, я хочу остаться с текущей строкой ... Я хочу, чтобы ничего не происходило, кроме EndEdit.

У меня есть это:

private void dtgProductos_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            dtgProductos[e.ColumnIndex, e.RowIndex].Selected = true; //this line is not working
            var index = dtgProductos.SelectedRows[0].Cells.IndexOf(dtgProductos.SelectedRows[0].Cells[e.ColumnIndex]);
            switch (index)
            {
                case 2:
                    {
                        dtgProductos.SelectedRows[0].Cells[4].Selected = true;
                        dtgProductos.BeginEdit(true);
                    }
                    break;
                case 4:
                    {
                        dtgProductos.SelectedRows[0].Cells[5].Selected = true;
                        dtgProductos.BeginEdit(true);
                    }
                    break;
                case 5:
                    {
                        btnAddProduct.Focus();
                    }
                    break;
                default:
                    break;
            }
        }

поэтому, когда я редактирую строку, которая не является последней, я получаю эту ошибку:

Operation is not valid because it results in a reentrant call to the SetCurrentCellAddressCore function.

1 Ответ

2 голосов
/ 27 марта 2010

Я думаю, вам нужно переопределить ProcessEnterKey, чтобы не перемещать фокус на следующую строку.

Может быть эта тема поможет.

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