DataGridViewCell.EditedFormattedValue プロパティ

定義

セルが編集モードであるかどうか、および値がコミットされているかどうかに関係なく、セルの現在の書式指定済みの値を取得します。Gets the current, formatted value of the cell, regardless of whether the cell is in edit mode and the value has not been committed.

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

プロパティ値

DataGridViewCell の現在の書式指定済みの値。The current, formatted value of the DataGridViewCell.

属性

例外

セルを含む行が共有行です。The row containing the cell is a shared row.

- または --or-

セルが列ヘッダーのセルです。The cell is a column header cell.

ColumnIndex が 0 未満です。これは、セルが行ヘッダーのセルであることを示します。ColumnIndex is less than 0, indicating that the cell is a row header cell.

書式指定が失敗し、DataError コントロールの DataGridView イベントのハンドラーが定義されていないか、ハンドラーで ThrowException プロパティが true に設定されました。Formatting failed and either there is no handler for the DataError event of the DataGridView control or the handler set the ThrowException property to true. 通常、例外オブジェクトは型 FormatException にキャストできます。The exception object can typically be cast to type FormatException.

次のコード例は、EditedFormattedValue プロパティの使用方法を示しています。The following code example demonstrates how to use the EditedFormattedValue property. この例では、IsCurrentCellDirty プロパティを使用して、現在のセルの内容が編集され、コミットされていないかどうかを判断し、セルが変更されている場合は、編集された値が使用されます。In this example, the IsCurrentCellDirty property is used to determine if the current cell's contents have been edited and not committed and, if the cell has been modified, the edited value is used. この例は、DataGridView.SelectionChanged イベントで使用できる大きな例の一部です。This example is part of a larger example available in the DataGridView.SelectionChanged event.

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

注釈

セルが編集モードの場合、このプロパティはセルまたは編集コントロールの現在の値を返します。This property returns the current value of the cell or editing control if the cell is in edit mode. それ以外の場合、このプロパティの値を取得すると、セルの値は、FormattedValueType プロパティによって示される型の等価の表示値に変換されます。Otherwise, getting the value of this property converts the cell value into an equivalent display value of the type indicated by the FormattedValueType property. これにより、DataGridView.CellFormatting イベントが発生します。これを処理して、値の変換をカスタマイズできます。This raises the DataGridView.CellFormatting event, which you can handle to customize the value conversion.

書式設定に失敗した場合は、DataGridView.DataError イベントが発生します。If formatting is unsuccessful, the DataGridView.DataError event occurs. このイベントのハンドラーがない場合、またはハンドラーが DataGridViewDataErrorEventArgs.ThrowException プロパティを trueに設定した場合は、例外がスローされます。If there is no handler for this event or the handler sets the DataGridViewDataErrorEventArgs.ThrowException property to true, an exception is thrown.

適用対象

こちらもご覧ください