Freigeben über


DataGridView.CancelRowEdit Ereignis

Definition

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.

Gilt für:

Weitere Informationen