【发布时间】:2016-10-10 07:13:11
【问题描述】:
目前我的表单上有一个 datagridview。我正在尝试做的想法是在用户编辑 datagridview 中的单元格时捕获可能的双重输入问题。我应该检查该字段是否有重复值(CheckContestantList 已经通过循环遍历每一行和一个可能的匹配项来完成)。在匹配时,应该恢复以前的值,并且在将该字段重置为编辑模式时应该弹出一个消息框并警告用户。
但是,当用户按下 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
【问题讨论】:
标签: vb.net datagridview