DataGridView.CommitEdit(DataGridViewDataErrorContexts) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.