2016-07-04 4 views
0

私はDataGridViewを持っていて、AllowUserToAddRowsのプロパティをfalseに、Loadのフォームハンドラで、関数を使ってグリッドに新しい行を追加しました。今、ユーザーがdatagidviewを編集し、編集とプレスを終了するとと入力します。を入力してください。この関数を呼び出して、新しい行を再びグリッドに追加します。セルがEditModeにあるときに、Enterキーを押してDataGridViewで処理する方法はありますか?

DataGridViewKeyDownイベントを試しましたが、セルが編集モードのときにイベントが発生しないようです。

+0

あなたの状態でこの機能を使用しますかこれは非常に曖昧です。私はあまりdatagridviewに精通していないが、KeyDownイベントがある場合は、キーが入力されているかどうかを確認することができます。 If e.KeyCode = Keys.Enter Then 'my code –

+0

Enterキーでセルを押すと、関数が呼び出されます。セルが編集モードにあるとき、キーダウンイベントはトリガしません。ありがとう – Mahantesh

+0

ユーザーがセルを編集したいだけで、新しい行を追加したくない場合はどうしますか?私はあなたがEnterキーを押すことを忘れ、新しいレコードを追加するためのショートカットキーを使用することをお勧めします。また、ユーザーがショートカットキーを使用してレコードを追加できるようにするときに、ユーザーが行を手動で追加することを禁止する理由が表示されません。 –

答えて

1
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean 
If msg.WParam.ToInt32() = Keys.Enter Then 
    DataGridView1.EndEdit() 
    MessageBox.Show("Enter key is pressed") 
    Return True 
End If 

Return MyBase.ProcessCmdKey(msg, keyData) 
End Function 

あなたは何を試してみました?

関連する問題