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