У меня есть datagridview в моей форме в настоящее время. Идея, которую я пытаюсь сделать, - уловить возможную проблему с двойной записью, когда пользователь редактирует ячейку в datagridview. Я должен проверить поле для повторяющегося значения (которое CheckContestantList
уже делает, перебирая каждую строку и возможное совпадение). При совпадении предполагается, что предыдущее значение будет восстановлено, и появится всплывающее окно с сообщением и предупредит пользователя при сбросе этого поля в режим редактирования.Проверка элементов DataGridView
Однако, когда пользователь нажимает клавишу Enter, индикатор текущей строки перемещается на один ... и отбрасывает все. Я уже немного поработал над этим вопросом, но я не могу показать, что текущая ячейка активна, даже если кто-то нажимает Enter.
Как разрешить клавише Enter, чтобы подтвердить подтверждение ввода, но не двигаться вниз на одну строку?
Private Sub dgvContestantPool_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles dgvContestantPool.CellEndEdit
' On the editing of the field, check to see if the value already exists.
If CheckContestantList(dgvContestantPool.CurrentCell.Value) = True Then
' Reset the value to the original value...
dgvContestantPool.ClearSelection()
dgvContestantPool.CurrentCell = dgvContestantPool.Rows(intCurrentRow).Cells("ContestantName")
dgvContestantPool.Rows(intCurrentRow).Selected = True
dgvContestantPool.CurrentCell.Value = strOldValue
dgvContestantPool.BeginEdit(True)
' Alert the user to try again...
MessageBox.Show("Entered value already exists in the list, try again or delete the entry.", "INVALID DATA - Already Exists", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
' Go ahead and let the edit persists.
End If
End Sub
Private Sub dgvContestantPool_CellBeginEdit(sender As Object, e As DataGridViewCellCancelEventArgs) Handles dgvContestantPool.CellBeginEdit
strOldValue = dgvContestantPool.CurrentCell.Value
intCurrentRow = dgvContestantPool.CurrentRow.Index
End Sub
Просто нужно было сделать одно изменение, чтобы условие If только проверял «грязные» ячейки, но все это работает! Благодарю. –
Я рад, что это поможет вам. Счастливое кодирование. –