2010-08-10 13 views
24

Me molesta hacer clic una vez para seleccionar una fila en la vista de cuadrícula de datos, y luego hacer clic de nuevo para hacer clic en un control en esa fila (en este caso un cuadro combinado).¿Acceso directo al cuadro combinado DataGridView con un solo clic?

¿Hay alguna manera de configurar esto para que todo esto se pueda hacer con un solo clic del mouse en lugar de con dos?

+0

Es posible que desee comprobar (http://stackoverflow.com/questions/34543940/datagridviewcomboboxcolumn-doesnt-open-the-dropdown-on-first [esta solución.] -click/39757746 # 39757746) – TaW

Respuesta

46

Cambie la propiedad EditMode de su control DataGridView a "EditOnEnter". Esto afectará todas las columnas sin embargo.

+0

Lo intentaré, gracias. –

+0

Funciona justo como esperaba. Gracias Stuart! –

+0

Se publica una solución aún mejor en los foros de Microsoft. Coloca el cursor justo en el medio del texto tal como yo quería: http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/fe5d5cfb-63b6-4a69-a01c-b7bbd18ae84a – HK1

2

Si desea aplicar selectivamente la de un solo clic edición de ciertas columnas, se puede cambiar la celda actual durante el evento MouseDown para eliminar el clic para editar:

// Subscribe to DataGridView.MouseDown when convenient 
this.dataGridView.MouseDown += this.HandleDataGridViewMouseDown; 

private void HandleDataGridViewMouseDown(object sender, MouseEventArgs e) 
{ 
    // See where the click is occurring 
    DataGridView.HitTestInfo info = this.dataGridView.HitTest(e.X, e.Y); 

    if (info.Type == DataGridViewHitTestType.Cell) 
    { 
     switch (info.ColumnIndex) 
     { 
      // Add and remove case statements as necessary depending on 
      // which columns have ComboBoxes in them. 

      case 1: // Column index 1 
      case 2: // Column index 2 
       this.dataGridView.CurrentCell = 
        this.dataGridView.Rows[info.RowIndex].Cells[info.ColumnIndex]; 
       break; 
      default: 
       break; 
     } 
    } 
} 

Por supuesto, si sus columnas y sus índices son dinámicos, necesitarías modificar esto un poco.

+0

Tanta datagridviews para cambiar ahora, si me encuentro con un caso en el que tengo que hacer esto voy a verificar su solución! –

Cuestiones relacionadas