2012-07-02 15 views

Respuesta

18
private void dgv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { 
      if (e.RowIndex != -1) { 
       //do work 
      } 
     } 
+0

Gracias a todo el mundo. Todas las soluciones funcionan Pero, ¿alguien podría explicar, cuál es el propósito del controlador ColumnHeaderDoubleClick si se ejecuta en otro controlador? Parece estúpido. – Alice

+1

En su pregunta, dijo que está utilizando CellDoubleClick. Como RowHeader también es una celda, el evento se dispara. Si ha utilizado ColumnHeaderDoubleClick, este evento solo se activará al hacer doble clic en el encabezado de la columna. Espero haber sido lo suficientemente claro. – Vale

+0

La celda debe ser Celda, el encabezado debe ser Encabezado. Gracias de todos modos. – Alice

2

Puede usar DataGridViewCellEventArgs.RowIndex para verificar si se hace clic en el encabezado o se hace clic en cualquier celda de las filas.

3

Puede verificar si e.RowIndex es -1, lo que significa que el evento ocurrió en una fila de encabezado.

1
No

la manera más limpia que hacer, pero se puede lograr la misma familia

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (((System.Windows.Forms.DataGridView)(sender)).CurrentCell != null) 
    { 
     //Do what you want here................ 
    } 
} 
+1

Su pregunta a @Vale sobre cuál es el propósito de ColumnHeaderDoubleClick? Un ejemplo que puedo pensar es Double Click para ordenar la cuadrícula por columna – HatSoft

+0

La clasificación está en Click, no en DoubleClick. En cualquier caso, CellDoubleClick debe ser CellDoubleClick y HeaderDoubleClick debe ser HeaderDoubleClick. Gracias de todos modos. – Alice

Cuestiones relacionadas