DataGridViewCell.EditedFormattedValue Eigenschaft

Definition

Ruft den aktuellen formatierten Wert der Zelle ab, unabhängig davon, ob sich die Zelle im Bearbeitungsmodus befindet und dass kein Commit für den Wert ausgeführt wurde.

public:
 property System::Object ^ EditedFormattedValue { System::Object ^ get(); };
[System.ComponentModel.Browsable(false)]
public object EditedFormattedValue { get; }
[System.ComponentModel.Browsable(false)]
public object? EditedFormattedValue { get; }
[<System.ComponentModel.Browsable(false)>]
member this.EditedFormattedValue : obj
Public ReadOnly Property EditedFormattedValue As Object

Eigenschaftswert

Der aktuelle formatierte Wert von DataGridViewCell.

Attribute

Ausnahmen

Die Zeile, die die Zelle enthält, stellt eine freigegebene Zeile dar.

- oder -

Die Zelle stellt eine Spaltenheaderzelle dar.

ColumnIndex ist kleiner als 0 (null). Das bedeutet, dass die Zelle eine Zeilenheaderzelle darstellt.

Bei der Formatierung sind Fehler aufgetreten. Entweder ist kein Handler für das DataError-Ereignis des DataGridView-Steuerelements vorhanden, oder der Handler hat die ThrowException-Eigenschaft auf true festgelegt. Das Ausnahmeobjekt kann in der Regel in den Typ FormatException umgewandelt werden.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der EditedFormattedValue -Eigenschaft veranschaulicht. In diesem Beispiel wird die IsCurrentCellDirty -Eigenschaft verwendet, um zu bestimmen, ob der Inhalt der aktuellen Zelle bearbeitet und nicht committet wurde. Wenn die Zelle geändert wurde, wird der bearbeitete Wert verwendet. Dieses Beispiel ist Teil eines größeren Beispiels, das DataGridView.SelectionChanged im -Ereignis verfügbar ist.

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();
}
Private Sub UpdateLabelText()
    Dim WithdrawalTotal As Integer = 0
    Dim DepositTotal As Integer = 0
    Dim SelectedCellTotal As Integer = 0
    Dim counter As Integer

    ' Iterate through all the rows and sum up the appropriate columns.
    For counter = 0 To (DataGridView1.Rows.Count - 1)
        If Not DataGridView1.Rows(counter) _
            .Cells("Withdrawals").Value Is Nothing Then

            If Not DataGridView1.Rows(counter) _
                .Cells("Withdrawals").Value.ToString().Length = 0 Then

                WithdrawalTotal += _
                    Integer.Parse(DataGridView1.Rows(counter) _
                    .Cells("Withdrawals").Value.ToString())
            End If
        End If

        If Not DataGridView1.Rows(counter) _
            .Cells("Deposits").Value Is Nothing Then

            If Not DataGridView1.Rows(counter) _
                .Cells("Deposits").Value.ToString().Length = 0 Then

                DepositTotal += _
                    Integer.Parse(DataGridView1.Rows(counter) _
                    .Cells("Deposits").Value.ToString())
            End If
        End If
    Next

    ' Iterate through the SelectedCells collection and sum up the values.
    For counter = 0 To (DataGridView1.SelectedCells.Count - 1)
        If DataGridView1.SelectedCells(counter).FormattedValueType Is _
        Type.GetType("System.String") Then

            Dim value As String = Nothing

            ' If the cell contains a value that has not been commited,
            ' use the modified value.
            If (DataGridView1.IsCurrentCellDirty = True) Then

                value = DataGridView1.SelectedCells(counter) _
                    .EditedFormattedValue.ToString()
            Else

                value = DataGridView1.SelectedCells(counter) _
                    .FormattedValue.ToString()
            End If

            If value IsNot Nothing Then

                ' Ignore cells in the Description column.
                If Not DataGridView1.SelectedCells(counter).ColumnIndex = _
                    DataGridView1.Columns("Description").Index Then

                    If Not value.Length = 0 Then
                        SelectedCellTotal += Integer.Parse(value)
                    End If
                End If
            End If
        End If

    Next

    ' 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()
End Sub

Hinweise

Diese Eigenschaft gibt den aktuellen Wert der Zelle oder des Bearbeitungssteuerelements zurück, wenn sich die Zelle im Bearbeitungsmodus befindet. Andernfalls konvertiert das Abrufen des Werts dieser Eigenschaft den Zellwert in einen entsprechenden Anzeigewert des typs, der durch die FormattedValueType -Eigenschaft angegeben wird. Dadurch wird das DataGridView.CellFormatting -Ereignis ausgelöst, das Sie behandeln können, um die Wertkonvertierung anzupassen.

Wenn die Formatierung nicht erfolgreich ist, tritt das DataGridView.DataError Ereignis auf. Wenn kein Handler für dieses Ereignis vorhanden ist oder der Handler die DataGridViewDataErrorEventArgs.ThrowException -Eigenschaft auf truefestlegt, wird eine Ausnahme ausgelöst.

Gilt für:

Weitere Informationen