Как выбрать и прокрутить до новой строки в Datagridview?

У меня есть DataGridView, привязанный к таблице БД. DataGridView недоступен для редактирования, есть текстовые поля, в которых данные можно редактировать, которыми управляют кнопки. У меня есть кнопка NewRow со следующим кодом:

        dataGridView1.AllowUserToAddRows = true;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (row.Selected)
            { row.Selected = false; }
        } 
        dataGridView1.Rows[dataGridView1.NewRowIndex].Selected = true;

Ват Мне нужно:

  • datagridview должен прокручиваться до нижней части (где находится newRow)
  • newRow следует сфокусировать, чтобы текстовые поля отображали новую (пустую) строку (содержимое)

Я пробовал:

        bindSourceGS.Position = dataGridView1.NewRowIndex;

но не выбирает datagridview newRow. Я хочу использовать datagridview newRow, потому что когда пользователь нажимает кнопку отмены, мне не нужно удалять строку в наборе данных и datagridview.Rows [i] имеет свойство IsNewRow.

Ответы

Ответ 1

Если его Winform, то вы можете использовать этот

dataGridView1.FirstDisplayedScrollingRowIndex

и установите datagridview.CurrentCell на ваш новый адрес ячейки строки.

Надеюсь, что это поможет

Ответ 2

Примечание. Для того чтобы FirstDisplayedScrollingRowIndex преуспеть, если у вас есть смешанные строки, вам нужно убедиться, что высота шаблона Row не менее велика на последней высоте строки. Это довольно проблема, поскольку я считаю, что нельзя установить высоту строки больше, чем высота шаблона строки.

Ответ 3

Я изучил эту проблему и обнаружил, что настройка dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.Rows.count-1 работает хорошо, пока свойство AutoSizeRowsMode НЕ установлено на DisplayedCells.

Если у вас возникли проблемы с настройкой dataGridView1.FirstDisplayedScrollingRowIndex=dataGridView1.Rows.Count -1, и сетка не прокручивается в нижнюю часть, попробуйте установить свойство AutoSizeRowsMode на AllCells.