0

このフォームをVSで作成しました

ここに画像の説明を入力してください

は自動的にインストールされます。キーを押すとNumPlace TextBox、次の行で自動的にインクリメントします。1EnterNumPlace

これは私が書いたコードです:

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 に答える