2009-11-17 5 views
3

J'utilise vb.net 2008 et DataGridView. Je suis à la recherche de code qui me permettra d'avoir le entrer déplacer la clé à la colonne suivante à droite au lieu de descendre d'une rangée tout en restant dans la même colonne.DataGridView/Entrée clé?

Répondre

4

est ici un article CodeProject qui montre ce que vous voulez faire:

Cheating the DataGridView

Il est C#, mais il est aussi assez simple.

L'approche abordée dans l'article consiste à sous-classer DataGridView pour remplacer l'événement ProcessDialogKey afin de gérer la logique de sélection de la cellule suivante dans la même ligne ou d'encapsuler la colonne sur la ligne suivante.

La plupart des approches pour faire ce que vous voulez faire impliquent de sous-classer DataGridView.

6

Si vous confirmez une modification, passez simplement à la colonne suivante de l'événement CellEndEdit. Si vous n'êtes pas en mode édition, vous devez remplacer ProcessDialogKey. Voir l'exemple ci-dessous:

public class dgv : DataGridView 
{ 
    protected override bool ProcessDialogKey(Keys keyData) 
    { 
     Keys key = (keyData & Keys.KeyCode); 
     if (key == Keys.Enter) 
     { 
      return this.ProcessRightKey(keyData); 
     } 
     return base.ProcessDialogKey(keyData); 
    } 
    protected override bool ProcessDataGridViewKey(KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      return this.ProcessRightKey(e.KeyData); 
     } 
     return base.ProcessDataGridViewKey(e); 
    } 
} 
+1

Cela a résolu le problème tout simplement génial pour moi. –

Questions connexes