首页 文章

如何对datagridview组合框单元确认的选择进行编辑或结束编辑?

提问于
浏览
1

Problem: 我想提交一个编辑,当用户有一个datagridview组合框单元时,即它将是常规组合框单元的"Selection Committed"

What I've Tried: 因此基于很多stackflow问题(如Datagridview comboBox not selecting on click/edit),他们查看所谓的事件,如所选索引已更改,单元格值已更改,单元格内容单击以及编辑控件显示 . 在这些事件处理程序中,我尝试提交编辑,但它会调用此事件 after 另一个单元格已单击,而不是在单元格中选择了所选项目 . 我've already tried making a 321506 handler and definition, but since the combobox cell doesn't有这个事件,我在vb.net中收到错误

这是一个示例代码段:

Private Sub editingComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

    editCameraTable.CommitEdit(DataGridViewDataErrorContexts.Commit)
    editCameraTable.EndEdit()
End Sub

在单击其他单元格之前不会调用此方法 . 有关如何为datagridviewcomboboxcell标记此事件的任何建议?

1 回答

  • 0

    Handel的CellEndEdit动作 . 是的,只有在此人点击其他地方后才会触发;但是将它与keydown预览相结合 . 人们在文本编辑结束时自然地单击return,您可以使用它来触发更新 . gridview中的单元格无法确定某人何时完成输入,因此需要该人员在编辑提交发生之前单击其中 . 唯一的另一种方法是使用一个可以在每个keydown事件上重置的计时器,并在键入进入空闲状态时进行更新 .

    Private Sub datagridview1_CellEndEdit(ByVal sender As Object, _
                   ByVal e As System.EventArgs) HAndels datagridview1.CellEndEdit
    
       '  If InLoad = True Then Exit Sub ' may want to suppress if you are programmatically changing this
    
       datagridview1.CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange)
       ' Do your saves... 
    
    
    End Sub
    
    Private Sub datagridview1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) _
         Handles datagridview1.KeyDown
    
        If e.KeyCode = Keys.Return Then
            datagridview1.CommitEdit(DataGridViewDataErrorContexts.CurrentCellChange)
        End If
    
    End Sub
    

相关问题