DataGridView.CancelRowEdit 이벤트

정의

VirtualMode 컨트롤의 DataGridView 속성이 true일 때 발생하며 행의 편집 내용을 취소합니다.Occurs when the VirtualMode property of a DataGridView control is true and the cancels edits in a row.

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 

예제

다음 코드 예제에서는 가상 모드의 DataGridView 컨트롤에 대해이 이벤트를 처리 하는 방법을 보여 줍니다.The following code example illustrates how to handle this event for a DataGridView control in virtual mode. 컨트롤이 편집 모드에 있으면 rowInEdit 변수는 편집 중인 행의 인덱스를 보유 하 고 customerInEdit 변수는 해당 행에 해당 하는 Customer 개체에 대 한 참조를 보유 합니다.When the control is in edit mode, the rowInEdit variable holds the index of the row being edited, and the customerInEdit variable holds a reference to a Customer object corresponding to that row. 사용자 편집 모드를 취소 하는 경우에이 개체를 삭제할 수 있습니다.When the user cancels out of edit mode, this object can be discarded. 사용자 편집 된 행이 새 레코드에 대 한 행을 단, 이전 고객 개체 삭제 하 고 편집한 키를 다시 시작할 수 있도록 새 항목으로 대체 됩니다.If the row the user was editing is the row for new records, however, the old Customer object is discarded and replaced with a new one so that the user can begin making edits again. 이 예제는 연습: Windows Forms DataGridView 컨트롤에서 가상 모드 구현에서 사용할 수 있는 더 큰 예제의 일부입니다.This example is part of a larger example available in Walkthrough: Implementing Virtual Mode in the Windows Forms DataGridView Control.

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

설명

DataGridView 가상 모드에 있는 경우 기본적으로 셀 수준에서 변경 내용이 데이터 캐시에 커밋됩니다.When the DataGridView is in virtual mode, changes are committed to the data cache at the cell level by default. 행 수준 트랜잭션을 구현할 때 CancelRowEdit 이벤트를 사용할 수 있습니다.The CancelRowEdit event can be used when implementing row-level transactions.

이벤트를 처리 하는 방법에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.For more information about how to handle events, see Handling and Raising Events.

적용 대상

추가 정보