Esta documentación está archivada y no tiene mantenimiento.

DataGridView.CellValueChanged (Evento)

Actualización: noviembre 2007

Se produce cuando cambia el valor de una celda.

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)

public event DataGridViewCellEventHandler CellValueChanged
/** @event */
public void add_CellValueChanged (DataGridViewCellEventHandler value)
/** @event */
public void remove_CellValueChanged (DataGridViewCellEventHandler value)

JScript no admite eventos.

El evento DataGridView.CellValueChanged se produce cuando se confirma el valor especificado por el usuario, lo que suele suceder cuando la celda pierde el foco.

Sin embargo, en el caso de las celdas de casilla, normalmente deseará controlar el cambio inmediatamente. Para confirmar el cambio cuando se hace clic en la celda, debe controlar el evento DataGridView.CurrentCellDirtyStateChanged. En el controlador, si la celda actual es una celda de casilla, debe llamar al método DataGridView.CommitEdit y pasarle el valor Commit.

No se ordenan las filas del control automáticamente cuando cambia un valor de celda. Para ordenar el control cuando el usuario modifica una celda, llame al método Sort en un controlador de eventos CellValueChanged.

Para obtener más información sobre la forma de controlar eventos, vea Utilizar eventos.

En el ejemplo de código siguiente se muestra cómo utilizar el evento CellValueChanged para actualizar los valores de una columna de saldo de un DataGridView. Este ejemplo forma parte de un ejemplo más extenso que se proporciona en el evento SelectionChanged.

private void DataGridView1_CellValueChanged(
    object sender, DataGridViewCellEventArgs e)
{
    // Update the balance column whenever the value of any cell changes.
    UpdateBalance();
}

private void DataGridView1_RowsRemoved(
    object sender, DataGridViewRowsRemovedEventArgs e)
{
    // Update the balance column whenever rows are deleted.
    UpdateBalance();
}

private void UpdateBalance()
{
    int counter;
    int balance;
    int deposit;
    int withdrawal;

    // Iterate through the rows, skipping the Starting Balance row.
    for (counter = 1; counter < (DataGridView1.Rows.Count - 1);
        counter++)
    {
        deposit = 0;
        withdrawal = 0;
        balance = int.Parse(DataGridView1.Rows[counter - 1]
            .Cells["Balance"].Value.ToString());

        if (DataGridView1.Rows[counter].Cells["Deposits"].Value != null)
        {
            // Verify that the cell value is not an empty string.
            if (DataGridView1.Rows[counter]
                .Cells["Deposits"].Value.ToString().Length != 0)
            {
                deposit = int.Parse(DataGridView1.Rows[counter]
                    .Cells["Deposits"].Value.ToString());
            }
        }

        if (DataGridView1.Rows[counter].Cells["Withdrawals"].Value != null)
        {
            if (DataGridView1.Rows[counter]
                .Cells["Withdrawals"].Value.ToString().Length != 0)
            {
                withdrawal = int.Parse(DataGridView1.Rows[counter]
                    .Cells["Withdrawals"].Value.ToString());
            }
        }
        DataGridView1.Rows[counter].Cells["Balance"].Value =
            (balance + deposit + withdrawal).ToString();
    }
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0
Mostrar: