DataGridView.CancelRowEdit Ereignis
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.
Tritt auf, wenn die VirtualMode -Eigenschaft eines DataGridView-Steuerelements true
ist und der Benutzer Bearbeitungen in einer Zeile abbricht.
public:
event System::Windows::Forms::QuestionEventHandler ^ CancelRowEdit;
public event System.Windows.Forms.QuestionEventHandler CancelRowEdit;
public event System.Windows.Forms.QuestionEventHandler? CancelRowEdit;
member this.CancelRowEdit : System.Windows.Forms.QuestionEventHandler
Public Custom Event CancelRowEdit As QuestionEventHandler
Ereignistyp
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie dieses Ereignis für ein DataGridView Steuerelement im virtuellen Modus behandelt wird. Wenn sich das Steuerelement im Bearbeitungsmodus befindet, enthält die rowInEdit
Variable den Index der zu bearbeitenden Zeile, und die customerInEdit
Variable enthält einen Verweis auf ein Customer-Objekt, das dieser Zeile entspricht. Wenn der Benutzer den Bearbeitungsmodus abbricht, kann dieses Objekt verworfen werden. Wenn die Zeile, die der Benutzer bearbeitet hat, jedoch die Zeile für neue Datensätze ist, wird das alte Customer-Objekt verworfen und durch eine neue ersetzt, sodass der Benutzer mit der Erneutbearbeitung beginnen kann. Dieses Beispiel ist Teil eines größeren Beispiels, das in Walkthrough: Implementieren des virtuellen Modus im Windows Forms DataGridView Controlverfügbar ist.
void dataGridView1_CancelRowEdit( Object^ /*sender*/,
System::Windows::Forms::QuestionEventArgs^ /*e*/ )
{
if ( this->rowInEdit == this->dataGridView1->Rows->Count - 2 &&
this->rowInEdit == this->customers->Count )
{
// If the user has canceled the edit of a newly created row,
// replace the corresponding Customer object with a new, empty one.
this->customerInEdit = gcnew Customer;
}
else
{
// If the user has canceled the edit of an existing row,
// release the corresponding Customer object.
this->customerInEdit = nullptr;
this->rowInEdit = -1;
}
}
private void dataGridView1_CancelRowEdit(object sender,
System.Windows.Forms.QuestionEventArgs e)
{
if (this.rowInEdit == this.dataGridView1.Rows.Count - 2 &&
this.rowInEdit == this.customers.Count)
{
// If the user has canceled the edit of a newly created row,
// replace the corresponding Customer object with a new, empty one.
this.customerInEdit = new Customer();
}
else
{
// If the user has canceled the edit of an existing row,
// release the corresponding Customer object.
this.customerInEdit = null;
this.rowInEdit = -1;
}
}
Private Sub dataGridView1_CancelRowEdit(ByVal sender As Object, _
ByVal e As System.Windows.Forms.QuestionEventArgs) _
Handles dataGridView1.CancelRowEdit
If Me.rowInEdit = Me.dataGridView1.Rows.Count - 2 AndAlso _
Me.rowInEdit = Me.customers.Count Then
' If the user has canceled the edit of a newly created row,
' replace the corresponding Customer object with a new, empty one.
Me.customerInEdit = New Customer()
Else
' If the user has canceled the edit of an existing row,
' release the corresponding Customer object.
Me.customerInEdit = Nothing
Me.rowInEdit = -1
End If
End Sub
Hinweise
Wenn sich die DataGridView im virtuellen Modus befindet, werden Änderungen standardmäßig auf den Datencache auf Zellenebene übernommen. Das CancelRowEdit-Ereignis kann beim Implementieren von Transaktionen auf Zeilenebene verwendet werden.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln und Auslösen von Ereignissen.