2009-09-04 35 views
8

Estoy trabajando en un cliente WinForm con un control DataGridView. Noto que los usuarios tienen que hacer clic una vez para seleccionar la celda y otra vez para editarla. ¿Cuál es la forma de cambiar esto a un modo de edición con un solo clic? Pensé que había visto algo como esto antes, pero no recuerdo el nombre.DataGridView - "Estilo de selección de celda" - Editar celda

Respuesta

6

Bueno, yo he notado un problema con EditMode.EditOnEnter
Se sesga un montón de comportamiento por defecto de DataGriView, que es irritante. Entre otros, la celda editada permanece en modo editado incluso cuando se llama explícitamente al método EndEdit (se fuerza a hacer clic en otro control para hacer que la celda datagridview pierda su foco)

El siguiente código funciona bastante bien ya que hace que se edita por un solo clic en cualquier celda y poner fin a la edición de oprimir la tecla Enter o hacer clic fuera de la DGView (al igual que lo haría en el comportamiento por defecto)

Aquí van:

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

En las propiedades de DataGridView: Modo Edición -> EditOnEnter

Cuestiones relacionadas