DataGridView.CellValueChanged (Evento)
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)
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(); } }