DataGridView.CommitEdit(DataGridViewDataErrorContexts) DataGridView.CommitEdit(DataGridViewDataErrorContexts) DataGridView.CommitEdit(DataGridViewDataErrorContexts) DataGridView.CommitEdit(DataGridViewDataErrorContexts) Method

定義

讓資料快取認可目前儲存格中的變更,而不需要結束編輯模式。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 DataGridViewDataErrorContexts DataGridViewDataErrorContexts

DataGridViewDataErrorContexts 值的位元 (Bitwise) 組合,指定可能發生錯誤的內容。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 屬性設定為 trueThe 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.

適用於

另請參閱