Proprietà DataGridViewCell.EditedFormattedValue
Assembly: System.Windows.Forms (in system.windows.forms.dll)
| Tipo di eccezione | Condizione |
|---|---|
| La riga contenente la cella è condivisa. -oppure- La cella è una cella di intestazione di colonna. | |
| La proprietà ColumnIndex è minore di 0, a indicare che la cella è un cella di intestazione di riga. | |
| La formattazione non è riuscita e non esiste alcun gestore per l'evento DataError del controllo DataGridView oppure il gestore ha impostato la proprietà ThrowException su true. L'oggetto dell'eccezione può solitamente essere convertito nel tipo FormatException. |
Questa proprietà restituisce il valore corrente della cella o del controllo di modifica se la cella è in modalità di modifica. In caso contrario, l'ottenimento del valore di questa proprietà converte il valore della cella in un valore di visualizzazione equivalente del tipo indicato dalla proprietà FormattedValueType. In tal modo viene generato l'evento DataGridView.CellFormatting, che è possibile gestire in modo da personalizzare la conversione del valore.
Se la formattazione viene eseguita correttamente, viene generato l'evento DataGridView.DataError. Se non è presente alcun gestore per l'evento o se il gestore imposta la proprietà DataGridViewDataErrorEventArgs.ThrowException su true, viene generata un'eccezione.
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la proprietà EditedFormattedValue. In questo esempio, viene utilizzata la proprietà IsCurrentCellDirty per determinare se il contenuto della cella corrente è stato modificato senza aver eseguito il commit e, nel caso in cui la cella sia stata modificata, viene utilizzato il valore modificato.
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 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, 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.