Este tema aún no ha recibido ninguna valoración - Valorar este tema

DataGridView.CellValueChanged (Evento)

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)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

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 de verificación, 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 de verificación, 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 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)