Empêcher datagridview de Windows Forms de changer de ligne après la modification d’une cellule

J’ai un datagridview dans les formulaires Windows, le comportement par défaut lors de la modification des valeurs est qu’après l’édition d’une cellule, lorsque j’appuie sur Entrée, la ligne sélectionnée passe à la suivante.

entrez la description de l'image ici

Je ne veux pas ça, je veux quitter le mode édition mais restr dans la même cellule.

entrez la description de l'image ici

C’est possible?

Vous pouvez personnaliser DataGridView pour substituer la méthode ProcessDialogKey :

 public class CustomGrid : DataGridView { protected override bool ProcessDialogKey(Keys keyData) { if (keyData == Keys.Enter) { EndEdit(); return true; } return base.ProcessDialogKey(keyData); } } 

Événement KeyDown:

Si e.KeyCode = Keys.Enter Puis e.SuppressKeyPress = True

C’est très simple. Pendant la modification, enregistrez le cellindex dans une variable, puis sélectionnez-le à nouveau.

Obtenez l’index de la colonne et de la ligne:

 e.ColumnIndex; e.RowIndex; 

et enregistrez-les dans une variable. Après avoir édité la cellule, sélectionnez à nouveau la cellule:

 dataGridView1.Rows[rindex].Cells[cindex].Selected = true;