2011-03-15 13 views
8

Tengo un DataGridView, donde deseo desactivar algunas celdas/filas con la configuración ReadOnly = true.Configuración de cell.ReadOnly no tiene ningún efecto

¿Cuál podría ser la razón por la que a veces esto no tiene ningún efecto y las celdas/filas siguen siendo editables?

¿Existen otras posibilidades para evitar la edición de filas o celdas específicas? ¿Es posible evitar hacer clic o ingresar una celda?

Respuesta

16

Puede evitar la edición con el evento CellBeginEdit. Si no desea que se edite la celda, puede cancelar la edición. Por ejemplo, si sólo desea que la primera columna a ser editable, usted puede hacer esto:

private void dataGridView1_CellBeginEdit(object sender, 
    DataGridViewCellCancelEventArgs e) 
{ 
    if (e.ColumnIndex != 0) 
    { 
     e.Cancel = true; 
    } 
} 
0

Una posibilidad es que si se establece la propiedad de sólo lectura del DataGridView (en código), luego de sólo lectura de las columnas tiene que ser reset:

this.dgv.Columns[0].ReadOnly = true; 
this.dgv.ReadOnly = false; 
// Need to reset the column's ReadOnly state: 
this.dgv.Columns[0].ReadOnly = true; 

puede también set whole rows como de sólo lectura

1

intente ejecutar un datagridview.Refresh() después de ajustar el valor de sólo lectura a la verdadera.

Cuestiones relacionadas