This question has already been asked several times but none found an answer.
我需要覆盖datagridview上的Enter键,以便它不会跳转到下一行,但允许我将输入的文本保存到数据库。这需要在用户输入文本框时完成。覆盖keydown在datagridview上输入
使用:作为ENTER键并不在文本框细胞火
Private Sub DataGridView1_mt_KeyDown(sender As Object, e As KeyEventArgs) Handles DataGridView1_mt.KeyDown
If e.KeyCode = Keys.Enter Then
...
将无法正常工作。 Keyup可以工作,但由于程序已经跳到下一个单元,所以它迟到了。按键与Keydown有同样的问题。
任何关于如何检测输入键的按键并覆盖它的想法?
UPDATE: 如果选中一个单元格,我可以检测到Enter键,但如果我正在输入文本框,则不能检测到Enter键。 (其实我需要的是检测当用户完成然后按回车。
Private Sub DataGridView1_EditingControlShowing(sender As System.Object, e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1_mt.EditingControlShowing
Dim tb As TextBox = CType(e.Control, TextBox)
AddHandler tb.KeyDown, AddressOf TextBox_KeyDown
End Sub
Private Sub TextBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Return Then
MessageBox.Show("Success") '''''DOES NOT WORK
End If
If e.KeyCode = Keys.Space Then
MessageBox.Show("Success") '''''WORKS
End If
End Sub
已经尝试过,它不工作.. Keydown根本没有触发,无论我检查什么密钥 – user2452250
看到的代码,并尝试 –
更新我的问题与额外的信息 – user2452250