Cómo: Llevar a cabo una acción personalizada en función de los cambios que se realicen en una celda de un control DataGridView de formularios Windows Forms

Actualización: noviembre 2007

El control DataGridView tiene varios eventos que puede utilizar para detectar los cambios en el estado de celdas DataGridView. Dos de los más utilizados son los eventos CellValueChanged y CellStateChanged.

Para detectar cambios en los valores de celdas de DataGridView

  • Escriba un controlador para el evento CellValueChanged.

    Private Sub dataGridView1_CellValueChanged(ByVal sender As Object, _
        ByVal e As DataGridViewCellEventArgs) _
        Handles dataGridView1.CellValueChanged
    
        Dim msg As String = String.Format( _
            "Cell at row {0}, column {1} value changed", _
            e.RowIndex, e.ColumnIndex)
        MessageBox.Show(msg, "Cell Value Changed")
    
    End Sub
    
    private void dataGridView1_CellValueChanged(object sender,
        DataGridViewCellEventArgs e)
    {
        string msg = String.Format(
            "Cell at row {0}, column {1} value changed",
            e.RowIndex, e.ColumnIndex);
        MessageBox.Show(msg, "Cell Value Changed");
    }
    

Para detectar cambios en los estados de celdas de DataGridView

  • Escriba un controlador para el evento CellStateChanged.

    Private Sub dataGridView1_CellStateChanged(ByVal sender As Object, _
        ByVal e As DataGridViewCellStateChangedEventArgs) _
        Handles dataGridView1.CellStateChanged
    
        Dim state As DataGridViewElementStates = e.StateChanged
        Dim msg As String = String.Format( _
            "Row {0}, Column {1}, {2}", _
            e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged)
        MessageBox.Show(msg, "Cell State Changed")
    
    End Sub
    
    private void dataGridView1_CellStateChanged(object sender,
        DataGridViewCellStateChangedEventArgs e)
    {
        DataGridViewElementStates state = e.StateChanged;
        string msg = String.Format("Row {0}, Column {1}, {2}",
            e.Cell.RowIndex, e.Cell.ColumnIndex, e.StateChanged);
        MessageBox.Show(msg, "Cell State Changed");
    }
    

Compilar el código

Para este ejemplo se necesita:

  • Un control DataGridView denominado dataGridView1. En C#, los controladores de eventos se deben conectar a los eventos correspondientes.

  • Referencias a los ensamblados System y System.Windows.Forms.

Vea también

Tareas

Tutorial: Validar datos en el control DataGridView de formularios Windows Forms

Referencia

DataGridView

DataGridView.CellValueChanged

DataGridView.CellStateChanged

Otros recursos

Programar con celdas, filas y columnas en el control DataGridView de formularios Windows Forms