DataGridView.RowDirtyStateNeeded 이벤트

정의

VirtualMode 컨트롤의 DataGridView 속성이 true이고 DataGridView가 현재 행에 커밋되지 않은 변경 내용이 있는지 여부를 확인해야 하는 경우 발생합니다.Occurs when the VirtualMode property of the DataGridView control is true and the DataGridView needs to determine whether the current row has uncommitted changes.

public:
 event System::Windows::Forms::QuestionEventHandler ^ RowDirtyStateNeeded;
public event System.Windows.Forms.QuestionEventHandler RowDirtyStateNeeded;
member this.RowDirtyStateNeeded : System.Windows.Forms.QuestionEventHandler 
Public Custom Event RowDirtyStateNeeded As QuestionEventHandler 

예제

다음 코드 예제에서는 셀 수준 커밋 범위 사용자만 현재 셀에 대 한 변경 내용으로 되돌릴 수 있도록이 이벤트를 처리 하는 방법에 설명 합니다.The following code example demonstrates how to handle this event to provide cell-level commit scope, meaning that the user can revert changes to the current cell only. 셀 수준 커밋 범위의 행 경우에만 변경 커밋되지 않은 것으로 처리 됩니다 현재 셀에 커밋되지 않은 변경 내용이 행의 모든 셀에 있는 경우 대신 커밋되지 않은 변경 내용이 있습니다.In cell-level commit scope, the row is treated as having uncommitted changes only when the current cell has uncommitted changes, rather than when any cell in the row has uncommitted changes. 이 예제는 연습에서 사용할 수 있는 더 큰 예제의 일부입니다. 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_RowDirtyStateNeeded( Object^ /*sender*/,
    System::Windows::Forms::QuestionEventArgs^ e )
{
   if (  !rowScopeCommit )
   {
      
      // In cell-level commit scope, indicate whether the value
      // of the current cell has been modified.
      e->Response = this->dataGridView1->IsCurrentCellDirty;
   }
}


private void dataGridView1_RowDirtyStateNeeded(object sender,
    System.Windows.Forms.QuestionEventArgs e)
{
    if (!rowScopeCommit)
    {
        // In cell-level commit scope, indicate whether the value
        // of the current cell has been modified.
        e.Response = this.dataGridView1.IsCurrentCellDirty;
    }
}
Private Sub dataGridView1_RowDirtyStateNeeded(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.QuestionEventArgs) _
    Handles dataGridView1.RowDirtyStateNeeded

    If Not rowScopeCommit Then

        ' In cell-level commit scope, indicate whether the value
        ' of the current cell has been modified.
        e.Response = Me.dataGridView1.IsCurrentCellDirty

    End If

End Sub

설명

기본적으로이 이벤트는 다음과 같이 설정 됩니다. 합니다 QuestionEventArgs.Response 속성을 true 현재 행의 모든 셀을 수정한 경우.By default, this event sets the QuestionEventArgs.Response property to true if any cells in the current row have been modified. 이 인해는 CancelRowEdit 사용자 행에 대 한 편집 내용이 되돌릴 때 발생할 이벤트를 합니다.This causes the CancelRowEdit event to occur when the user reverts edits to a row. 사용자가 esc 키를 누른 채 셀이 편집 모드에서 또는 한 번 편집 모드 외부 하는 경우에 두 번 편집 하 여 행을 되돌릴 수 있습니다.Users can revert edits to a row by pressing ESC twice when a cell is in edit mode or once outside of edit mode. 이 이벤트를 설정 하 여 가상 모드에 있는 커밋 범위를 사용자 지정할 수는 QuestionEventArgs.Response 선택한 커밋 범위에 따라 올바른 값으로 속성입니다.This event can be used for customizing commit scope in virtual mode by setting the QuestionEventArgs.Response property to the correct value depending on the chosen commit scope.

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

적용 대상

추가 정보