none
Habilitar botón al seleccionar checkbox RRS feed

  • Pregunta

  • Hola, buenos días, recorro nuevamente en su ayuda, tengo un datagidview, dentro de este tengo una columna de tipo checkbox, aparte fuera del datagridview tengo un botón ELIMINAR inicialmente con su propiedad ENABLED = FALSE.                            Deseo que cuando se seleccione uno o varios checkbox se habilite el botón para realizar la eliminación de las(s) fila (puedo seleccionar varias filas para eliminarlas de golpe) y en el caso de que se quite el check se vuelva a deshabilitar el botón.   

    Hay algún evento que detecte el cambio de una celda checkbox que permita habilitar y deshabilitar el botón.

    Cualquier ayuda estaré muy agradecido. 

     

    miércoles, 8 de noviembre de 2017 12:32

Respuestas

  • private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
    {
    	if (dataGridView1.IsCurrentCellDirty)
    		dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
    
    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
    	if (e.ColumnIndex == 0)
    		btnEliminar.Enabled = dataGridView1.Rows.OfType<DataGridViewRow>().
    			Any(x => Convert.ToBoolean(x.Cells[e.ColumnIndex].Value));
    }


    • Marcado como respuesta JCORBETTO miércoles, 8 de noviembre de 2017 14:50
    miércoles, 8 de noviembre de 2017 13:54

Todas las respuestas




    • Propuesto como respuesta Jorge TurradoMVP miércoles, 8 de noviembre de 2017 13:35
    • Editado walter_5 miércoles, 8 de noviembre de 2017 14:56
    miércoles, 8 de noviembre de 2017 13:29
  • private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
    {
    	if (dataGridView1.IsCurrentCellDirty)
    		dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
    
    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
    	if (e.ColumnIndex == 0)
    		btnEliminar.Enabled = dataGridView1.Rows.OfType<DataGridViewRow>().
    			Any(x => Convert.ToBoolean(x.Cells[e.ColumnIndex].Value));
    }


    • Marcado como respuesta JCORBETTO miércoles, 8 de noviembre de 2017 14:50
    miércoles, 8 de noviembre de 2017 13:54
  • Gracias Willams, eso es exactamente lo que necesitaba
    miércoles, 8 de noviembre de 2017 14:51