Compartir a través de


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

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