Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
DataGridView.CellValueChanged (Evento)
Se produce cuando cambia el valor de una celda.
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, 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 una casilla, llama al método DataGridView.CommitEdit y pase 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 cómo 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 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.