2009-09-04 13 views
8

Je travaille sur un client WinForm avec un contrôle DataGridView. Je remarque que les utilisateurs doivent cliquer une fois pour sélectionner la cellule et encore pour la modifier. Quel est le moyen de changer cela en un seul mode d'édition de clic? Je pensais avoir déjà vu quelque chose comme ça mais je ne me souviens plus du nom.DataGridView - "Style de sélection de cellule" - Modifier la cellule

Répondre

6

Eh bien, je l'ai remarqué un problème avec EditMode.EditOnEnter
Il polarise beaucoup du comportement par défaut de DataGriView, qui est irritant. Entre autres, la cellule éditée reste en mode édité même lorsque la méthode EndEdit est explicitement appelée (vous devez cliquer sur un autre contrôle pour que la cellule dataagridview perde son focus.)

Le code suivant fonctionne assez bien car il vous permet d'éditer en cliquant une seule fois sur une cellule et mettre fin à la modifier en appuyant sur entrer ou en cliquant sur l'extérieur de la DGView (comme vous le feriez dans le comportement par défaut)

ici, vous allez:

private void myDatagridView_MouseUp(object sender, MouseEventArgs e) 
    { 
     if (e.Button == MouseButtons.Left) 
     { 
      hitTestInfo = myDatagridView.HitTest(e.X, e.Y); 
      if (hitTestInfo.Type == DataGridViewHitTestType.Cell) 
       myDatagridView.BeginEdit(true); 
      else 
       myDatagridView.EndEdit(); 
     } 
    } 
15

Dans les propriétés DataGridView: EditMode -> EditOnEnter

Questions connexes