DataGridView.CancelRowEdit DataGridView.CancelRowEdit DataGridView.CancelRowEdit DataGridView.CancelRowEdit Event

정의

DataGridView 컨트롤의 VirtualMode 속성이 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.

적용 대상

추가 정보