Freigeben über


DataGridView.CommitEdit(DataGridViewDataErrorContexts) Methode

Definition

Speichert Änderungen am Datencache in der aktiven Zelle, ohne den Bearbeitungsmodus zu beenden.

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

Parameter

context
DataGridViewDataErrorContexts

Eine bitweise Kombination von DataGridViewDataErrorContexts-Werten, die den Kontext angibt, in dem ein Fehler auftreten kann.

Gibt zurück

true, wenn die Änderungen gespeichert wurden, andernfalls false.

Ausnahmen

Für den Zellwert konnte kein Commit ausgeführt werden, und entweder ist kein Handler für das DataError-Ereignis vorhanden, oder der Handler hat die ThrowException-Eigenschaft auf true festgelegt.

Beispiele

Im folgenden Codebeispiel wird die CommitEdit -Methode in einem CurrentCellDirtyStateChanged Ereignishandler aufgerufen, um das Ereignis auszulösen CellValueChanged . Dieses Codebeispiel ist Teil eines größeren Beispiels unter Vorgehensweise: Deaktivieren von Schaltflächen in einer Schaltflächenspalte im Windows Forms DataGridView-Steuerelements.

// 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

Hinweise

Diese Methode versucht, den formatierten, vom Benutzer angegebenen Wert in den zugrunde liegenden Zelldatentyp zu konvertieren. Dazu löst es das CellParsing Ereignis aus, das Sie behandeln können, um die Typkonvertierung anzupassen. Andernfalls werden Standardtypkonverter verwendet. Konvertierungsfehler können zu einer Ausnahme führen, wenn das DataError Ereignis nicht behandelt wird, um es zu verhindern. Wenn der Wert erfolgreich konvertiert wurde, wird er an den Datenspeicher gebunden, wodurch das CellValuePushed Ereignis für nicht datengebundene Zellen ausgelöst wird, wenn der VirtualMode Eigenschaftswert ist true. Wenn der Wert erfolgreich committet wurde, tritt das CellValueChanged Ereignis auf.

Gilt für:

Weitere Informationen