Я пытаюсь сфокусировать ввод и запустить событие редактирования в каждой новой строке, которую я добавляю в DataGridView в моей форме.
Это код, который я пытаюсь использовать для достижения этого пользователя.
Private Sub grd_GoldAdders_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArgs) Handles grd_GoldAdders.RowsAdded
Dim grid As DataGridView = DirectCast(sender, DataGridView)
grid.ClearSelection()
If grid.Rows(e.RowIndex).Cells("grid_flag").FormattedValue = Constants.[New] Then
For Each cell As DataGridViewCell In grid.Rows(e.RowIndex).Cells
If Not cell.Visible Then Continue For
grid.CurrentCell = cell
grid.BeginEdit(False)
Exit For
Next
End If
End Sub
"grid_flag" - это скрытая ячейка, которая используется для хранения пользовательских состояний для строки.
Перед добавлением строки, это то, что мы видим в форме:
Это то, что мы видим, когда на самом деле пытаемся добавить новую строку:
Обратите внимание, что выбран столбец 0,0 и первый видимый столбец новой строки, но фокус столбца 0,0. Я не желаю, чтобы 0,0 выбрано или имело фокус. Я также вижу здесь, что индикатор строки тоже указывает на строку 0 ...
Вот как я хотел бы видеть вещи после нажатия на кнопку «Добавить»:
Кто-нибудь знает, где я ошибаюсь с кодом? Я искал SO большую часть дня, пытаясь решить эту проблему.