Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona

Evento DataGridView.CellValueChanged

Nota: questo evento è stato introdotto con .NET Framework versione 2.0.

Si verifica quando cambia il valore di una cella.

Spazio dei nomi: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

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

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

JScript supporta l'utilizzo di eventi ma non la dichiarazione di nuovi.

L'evento DataGridView.CellValueChanged si verifica quando viene eseguito il commit del valore specificato dall'utente, che in genere si verifica quando la cella perde lo stato attivo.

Nel caso delle celle di caselle di controllo, tuttavia, in genere è preferibile gestire la modifica immediatamente. Per eseguire il commit della modifica quando viene fatto clic sulla cella, è necessario gestire l'evento DataGridView.CurrentCellDirtyStateChanged. Nel gestore, se la cella corrente contiene una casella di controllo, chiamare il metodo DataGridView.CommitEdit e passare il valore Commit.

Le righe nel controllo non vengono ordinate automaticamente quando viene modificato un valore di cella. Per ordinare il controllo quando l'utente modifica una cella, chiamare il metodo Sort in un gestore eventi CellValueChanged.

Per ulteriori informazioni sulla gestione di eventi, vedere Utilizzo degli eventi.

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare l'evento CellValueChanged per aggiornare i valori in una colonna di saldo di DataGridView.

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 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

.NET Framework

Supportato in: 2.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft