Compartir a través de


Cómo realizar una acción personalizada basada en cambios en una celda de un control DataGridView de Windows Forms

El DataGridView control tiene una serie de eventos que puede usar para detectar cambios en el estado de DataGridView las celdas. Dos de los más usados son los eventos CellValueChanged y CellStateChanged.

Para detectar cambios en los valores de las celdas DataGridView

  • Escriba un controlador para el CellValueChanged evento.

    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");
    }
    
    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
    

Para detectar cambios en los estados de las celdas DataGridView

  • Escriba un controlador para el CellStateChanged evento.

    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");
    }
    
    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
    

Compilar el código

Este ejemplo requiere:

  • Control DataGridView denominado dataGridView1. Para C#, los controladores de eventos deben estar conectados a los eventos correspondientes.

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

Consulte también