DataGridView.CommitEdit(DataGridViewDataErrorContexts) メソッド


編集モードを終了せずに、現在のセルの変更をデータ キャッシュにコミットします。Commits changes in the current cell to the data cache without ending edit mode.

 bool CommitEdit(System::Windows::Forms::DataGridViewDataErrorContexts context);
public bool CommitEdit (System.Windows.Forms.DataGridViewDataErrorContexts context);
member this.CommitEdit : System.Windows.Forms.DataGridViewDataErrorContexts -> bool
Public Function CommitEdit (context As DataGridViewDataErrorContexts) As Boolean



エラーが発生する可能性のあるコンテキストを指定する DataGridViewDataErrorContexts 値のビットごとの組み合わせ。A bitwise combination of DataGridViewDataErrorContexts values that specifies the context in which an error can occur.


変更がコミットされた場合は true。それ以外の場合は falsetrue if the changes were committed; otherwise false.


セル値をコミットできませんでした。また、DataError イベントのハンドラーがないか、ハンドラーが ThrowException プロパティを true に設定しています。The cell value could not be committed and either there is no handler for the DataError event or the handler has set the ThrowException property to true.

次のコード例では、CurrentCellDirtyStateChanged イベントハンドラー内で CommitEdit メソッドを呼び出して、CellValueChanged イベントを発生させます。The following code example calls the CommitEdit method within a CurrentCellDirtyStateChanged event handler to raise the CellValueChanged event. このコード例は、 「方法: Windows フォーム DataGridView コントロールのボタン列にあるボタンを無効にする」で提供されている大規模な例の一部です。This code example is part of a larger example provided in How to: Disable Buttons in a Button Column in the Windows Forms DataGridView Control.

// This event handler manually raises the CellValueChanged event
// by calling the CommitEdit method.
void dataGridView1_CurrentCellDirtyStateChanged(object sender,
    EventArgs e)
    if (dataGridView1.IsCurrentCellDirty)

// If a check box cell is clicked, this event handler disables  
// or enables the button in the same row as the clicked cell.
public void dataGridView1_CellValueChanged(object sender,
    DataGridViewCellEventArgs e)
    if (dataGridView1.Columns[e.ColumnIndex].Name == "CheckBoxes")
        DataGridViewDisableButtonCell buttonCell =

        DataGridViewCheckBoxCell checkCell =
        buttonCell.Enabled = !(Boolean)checkCell.Value;

' This event handler manually raises the CellValueChanged event
' by calling the CommitEdit method.
Sub dataGridView1_CurrentCellDirtyStateChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles dataGridView1.CurrentCellDirtyStateChanged

    If dataGridView1.IsCurrentCellDirty Then
    End If
End Sub

' If a check box cell is clicked, this event handler disables  
' or enables the button in the same row as the clicked cell.
Public Sub dataGridView1_CellValueChanged(ByVal sender As Object, _
    ByVal e As DataGridViewCellEventArgs) _
    Handles dataGridView1.CellValueChanged

    If dataGridView1.Columns(e.ColumnIndex).Name = "CheckBoxes" Then
        Dim buttonCell As DataGridViewDisableButtonCell = _
            CType(dataGridView1.Rows(e.RowIndex).Cells("Buttons"), _

        Dim checkCell As DataGridViewCheckBoxCell = _
            CType(dataGridView1.Rows(e.RowIndex).Cells("CheckBoxes"), _
        buttonCell.Enabled = Not CType(checkCell.Value, [Boolean])

    End If
End Sub


このメソッドは、書式設定されたユーザー指定の値を、基になるセルのデータ型に変換しようとします。This method attempts to convert the formatted, user-specified value to the underlying cell data type. これを行うために、CellParsing イベントが発生します。これを処理して、型変換をカスタマイズできます。To do this, it raises the CellParsing event, which you can handle to customize the type conversion. それ以外の場合は、既定の型コンバーターが使用されます。Otherwise, default type converters are used. DataError イベントが処理されないようにすると、変換エラーが発生して例外が発生する可能性があります。Conversion errors may result in an exception if the DataError event is not handled to prevent it. 値が正常に変換されると、データストアにコミットされ、VirtualMode プロパティ値が true場合に、データバインドされていないセルの CellValuePushed イベントが発生します。If the value is successfully converted, it is committed to the data store, raising the CellValuePushed event for non-data-bound cells when the VirtualMode property value is true. 値が正常にコミットされると、CellValueChanged イベントが発生します。If the value is successfully committed, the CellValueChanged event occurs.