Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question// Voici la dérivée class Derived_DGV : DataGridView { public Derived_DGV() { } // Voici une propriété qui correspondra à la longueur actuelle de la cellule. protected int CurrentCellLength { get; set; } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { try { // Si la cellule actuelle n'est pas en mode édition, on ne fait rien if (!base.CurrentCell.IsInEditMode) { CurrentCellLength = 0; return base.ProcessCmdKey(ref msg, keyData); } else { switch (keyData) { // Pour le moment je catch que les chiffres du pavé numériques case Keys.NumPad0: case Keys.NumPad1: case Keys.NumPad2: case Keys.NumPad3: case Keys.NumPad4: case Keys.NumPad5: case Keys.NumPad6: case Keys.NumPad7: case Keys.NumPad8: case Keys.NumPad9: { // Incrément par touche appuyée CurrentCellLength += 1; // Je cast en 'DataGridViewTextBoxColumn' pour obtenir le 'MaxInputLength' de la colonne. DataGridViewTextBoxColumn tempDGV_TBC = (DataGridViewTextBoxColumn)base.Columns[base.CurrentCell.ColumnIndex]; if (CurrentCellLength == tempDGV_TBC.MaxInputLength) { // J'arrête l'édition base.EndEdit(); // Je sélectionne la cellule sur la droite base.Rows[base.CurrentCell.RowIndex].Cells[base.CurrentCell.ColumnIndex + 1].Selected = true; // On met la cellule suivante en mode édition base.BeginEdit(true); return base.ProcessCmdKey(ref msg, keyData); } else { return base.ProcessCmdKey(ref msg, keyData); } } default: return base.ProcessCmdKey(ref msg, keyData); } } } catch { return base.ProcessCmdKey(ref msg, keyData); } } }