DataGridView.CommitEdit(DataGridViewDataErrorContexts) 메서드

정의

편집 모드를 끝내지 않고 현재 셀의 변경 내용을 데이터 캐시에 커밋합니다.Commits changes in the current cell to the data cache without ending edit mode.

public:
 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

매개 변수

context
DataGridViewDataErrorContexts

오류 발생 가능한 컨텍스트를 지정하는 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.

예제

다음 코드 예제에서는 호출을 CommitEdit 메서드 내에서 CurrentCellDirtyStateChanged 발생 시키는 이벤트 처리기는 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)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

// 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 =
            (DataGridViewDisableButtonCell)dataGridView1.
            Rows[e.RowIndex].Cells["Buttons"];

        DataGridViewCheckBoxCell checkCell =
            (DataGridViewCheckBoxCell)dataGridView1.
            Rows[e.RowIndex].Cells["CheckBoxes"];
        buttonCell.Enabled = !(Boolean)checkCell.Value;

        dataGridView1.Invalidate();
    }
}
' 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
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
    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"), _
            DataGridViewDisableButtonCell)

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

        dataGridView1.Invalidate()
    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. 커밋된 데이터에는 값이 성공적으로 변환 하는 경우를 발생 시키는 저장 합니다 CellValuePushed 비 바운드 데이터에 대 한 이벤트를 셀 때를 VirtualMode 속성 값이 true.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.

적용 대상

추가 정보