Freigeben über


DataGridView.CommitEdit(DataGridViewDataErrorContexts) Methode

Definition

Wechselt in der aktuellen Zelle in den Datencache, 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 übernommen wurden; andernfalls false.

Ausnahmen

Der Zellwert konnte nicht zugesichert werden, und entweder gibt es keinen Handler für das DataError Ereignis, oder der Handler hat die ThrowException Eigenschaft auf truefestgelegt.

Beispiele

Im folgenden Codebeispiel wird die CommitEdit Methode innerhalb eines CurrentCellDirtyStateChanged Ereignishandlers aufgerufen, um das CellValueChanged Ereignis auszuheben. Dieses Codebeispiel ist Teil eines größeren Beispiels, das in How to: Disable Buttons in a Button Column in the Windows Forms DataGridView Control bereitgestellt wird.

// 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, mit dem Sie die Typkonvertierung anpassen können. 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 wird, 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 zugesichert wurde, tritt das CellValueChanged Ereignis auf.

Gilt für:

Weitere Informationen