0

我在 VS 中创建了这个表单

在此处输入图像描述

NumPlace TextBox是自动的1,我想在按下Enter键时NumPlace自动增加下一行的值。

这是我写的代码:

Private Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown
        If e.KeyCode = Keys.Enter Then
            MsgBox("Enter key is pressed !")
        End If
    End Sub

但它不起作用,它仅在我选择某个行结束时按“Enter”但当我更改 ComboBox 的值或当我选择NumPlace TextBox然后按下Enter事件时不起作用。

4

3 回答 3

1

您需要检查 ColIndex 和 RowIndex ............

Dim currCell As DataGridViewCell = DataGridView1.CurrentCell    
于 2013-01-21T11:43:40.327 回答
0

DataGridView1_KeyDown事件只会在焦点打开时触发DataGridView1。尝试处理Form1_KeyDown事件。

Private Sub Form1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Enter Then
            MsgBox("Enter key is pressed !")
        End If
    End Sub

但是,您应该将 Form1KeyPreview属性设置为TrueinForm Designer或 in,Form Load以便表单在事件传递给具有焦点的控件之前接收键事件。

看到这个了解更多信息

于 2013-01-21T16:05:31.857 回答
0

解决方案是使用事件KeyUp而不是KeyDown

于 2013-01-22T13:18:48.287 回答