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
|
DataGridViewCell.EditedFormattedValue (Propiedad)
Obtiene el valor actual con formato de la celda, con independencia de si la celda está en modo de edición y no se ha confirmado el valor.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
| Excepción | Condición |
|---|---|
| ArgumentOutOfRangeException |
La fila que contiene la celda es una fila compartida. O bien La celda es una celda de encabezado de columna. |
| InvalidOperationException |
ColumnIndex es menor que 0, lo que indica que la celda es una celda de encabezado de fila. |
| Exception |
Se ha producido un error al dar formato y, o bien no hay ningún controlador para el evento DataError del control DataGridView, o el controlador ha establecido la propiedad ThrowException en true. El objeto de excepción normalmente se puede convertir en un tipo de FormatException. |
Esta propiedad devuelve el valor actual de la celda o del control de edición si la celda está en modo de edición. De lo contrario, al obtener el valor de esta propiedad, se convierte el valor de la celda en un valor de presentación equivalente, del tipo indicado por la propiedad FormattedValueType. Esto provoca el evento DataGridView.CellFormatting, que se puede controlar para personalizar la conversión de valores.
Si la asignación de formato no se realiza correctamente, se produce el evento DataGridView.DataError. Si no hay un controlador para este evento o si el controlador establece la propiedad DataGridViewDataErrorEventArgs.ThrowException en true, se produce una excepción.
En el ejemplo de código siguiente se muestra cómo se utiliza la propiedad EditedFormattedValue. En este ejemplo, se utiliza la propiedad IsCurrentCellDirty para determinar si el contenido de la celda actual se ha modificado pero no se ha confirmado y, en el caso de que se haya modificado la celda, se utiliza el valor editado. Este ejemplo forma parte de un ejemplo más extenso que se proporciona en el evento DataGridView.SelectionChanged.
private void UpdateLabelText() { int WithdrawalTotal = 0; int DepositTotal = 0; int SelectedCellTotal = 0; int counter; // Iterate through all the rows and sum up the appropriate columns. for (counter = 0; counter < (DataGridView1.Rows.Count); counter++) { if (DataGridView1.Rows[counter].Cells["Withdrawals"].Value != null) { if (DataGridView1.Rows[counter]. Cells["Withdrawals"].Value.ToString().Length != 0) { WithdrawalTotal += int.Parse(DataGridView1.Rows[counter]. Cells["Withdrawals"].Value.ToString()); } } if (DataGridView1.Rows[counter].Cells["Deposits"].Value != null) { if (DataGridView1.Rows[counter] .Cells["Deposits"].Value.ToString().Length != 0) { DepositTotal += int.Parse(DataGridView1.Rows[counter] .Cells["Deposits"].Value.ToString()); } } } // Iterate through the SelectedCells collection and sum up the values. for (counter = 0; counter < (DataGridView1.SelectedCells.Count); counter++) { if (DataGridView1.SelectedCells[counter].FormattedValueType == Type.GetType("System.String")) { string value = null; // If the cell contains a value that has not been commited, // use the modified value. if (DataGridView1.IsCurrentCellDirty == true) { value = DataGridView1.SelectedCells[counter] .EditedFormattedValue.ToString(); } else { value = DataGridView1.SelectedCells[counter] .FormattedValue.ToString(); } if (value != null) { // Ignore cells in the Description column. if (DataGridView1.SelectedCells[counter].ColumnIndex != DataGridView1.Columns["Description"].Index) { if (value.Length != 0) { SelectedCellTotal += int.Parse(value); } } } } } // Set the labels to reflect the current state of the DataGridView. Label1.Text = "Withdrawals Total: " + WithdrawalTotal.ToString(); Label2.Text = "Deposits Total: " + DepositTotal.ToString(); Label3.Text = "Selected Cells Total: " + SelectedCellTotal.ToString(); Label4.Text = "Total entries: " + DataGridView1.RowCount.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.