DataGridView.CommitEdit(DataGridViewDataErrorContexts) Method


편집 모드를 끝내지 않고 현재 셀의 변경 내용을 데이터 캐시에 커밋합니다.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이고, 그렇지 않으면 false입니다.true 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 Forms 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.

Applies to

See also