DataGridView.CancelRowEdit Ereignis

Definition

Tritt ein, wenn die VirtualMode-Eigenschaft eines DataGridView-Steuerelements true ist und Bearbeitungen in einer Zeile abgebrochen werden.

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 Zeile, die bearbeitet wird, und die customerInEdit Variable enthält einen Verweis auf ein Customer-Objekt, das dieser Zeile entspricht. Wenn der Benutzer den Bearbeitungsmodus beendet, 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 ein neues ersetzt, sodass der Benutzer erneut mit bearbeitungen beginnen kann. Dieses Beispiel ist Teil eines größeren Beispiels, das unter Exemplarische Vorgehensweise: Implementieren des virtuellen Modus im Windows Forms DataGridView-Steuerelements verfü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 im DataGridView virtuellen Modus befindet, werden Änderungen standardmäßig auf Zellenebene in den Datencache committet. 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