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 値のビットごとの組み合わせ。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.

次のコード例ではCommitEdit 、イベントハンドラー CurrentCellDirtyStateChanged内でメソッドを呼び出し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)
    {
        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. 値が正常に変換された場合は、データストアにコミットされCellValuePushedVirtualModeプロパティ値が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.

適用対象

こちらもご覧ください