2012-08-31 3 views
0


VisualStudio에서 생성 한 데이터 집합이 있습니다.
DataGridView (VisualStudio에서 연결된 너비)에 연결했습니다.
필터를 사용하고 있습니다. 예를 들면 :
xyBindingSource.Filter = "yx = 'tart'";

내 문제 :
내가 (다른 어떤 타트에서) YX 컬럼의 값을 변경하는 경우 변경된 행이 실행가는 CellEndEdit 이벤트 전에 제거합니다.
CellEndEdit 이벤트에서 DataGridViewCellEventArgs에 올바른 행 및 열 번호가 포함됩니다.
그러나 이벤트 args가 가리키는 행은 선택된 행이 먼저 제거되기 때문에 편집 된 내용이 아닙니다.

어떻게해야합니까? 도움을

감사 :
NorbiC# WinForm DataGridView 필터 일시 중지

답변

0

당신은 DataGridView.CurrentCellDirtyStateChanged 이벤트를 사용하여이 작업을 처리 할 수 ​​있습니다. 당신이 이런 식으로 할 경우는 DataGridView.CellValueChanged 이벤트를 발생시킬 수 있습니다

void dataGridView1_CurrentCellDirtyStateChanged(object sender, 
    EventArgs e) 
{ 
    if (dataGridView1.IsCurrentCellDirty) 
    { 
     dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); 
    } 
} 

CommitEdit 수동으로 DataGridView.CellValueChanged 이벤트를 발생시킵니다. 이 이벤트에서 Filter 메서드를 다시로드 할 수 있습니다. 시도 해봐.

관련 문제