2011-08-03 4 views
0

체크 박스 열의 헤더 안에 체크 박스를 만들었습니다. 그것은 내가 확인했을 때 잘 동작합니다. DataGridView의 모든 행이 검사됩니다. DataGridView의 단일 행을 선택 취소하면 헤더 셀 체크 박스의 선택을 취소합니다. 헤더 체크 박스 상태를 설정하는 CellValueChanged 이벤트에 코드를 넣으려고했습니다. 문제는 현재 셀이 포커스를 잃을 때 CellValueChanged이 발생한다는 것입니다. 셀에서 2 ~ 3 번 클릭하면 아무 일도 일어나지 않지만 e 다음 셀을 선택하면 이벤트가 시작되고 헤더 셀의 체크 박스 상태가 무효화됩니다.DataGridView CheckboxColumn 머리글 확인란이 행과 동기화됩니까?

답변

0

시도해보십시오 CurrentCellDirtyStateChanged 이벤트?

+0

예 i 사용할려고했지만이 이벤트가 발생하면 셀의 새 값이 아직 설정되지 않았습니다. 그래서 셀은 오래된 값을 가지고 있으며 새로운 값이 현재 값의 반대가 될 것이라고 추정해야합니다. 하지만 어디 cell_validating 또는 셀의 cell_endedit 값이 변경됩니다 양식을 가지고. – IordanTanev

4

CurrentCellDirtyStateChanged 이벤트에서 DataGridview의 CommitEdit (DataGridViewErrorContexts.Commit) 메서드를 호출하십시오. 셀 값을 커밋하고 해당 셀의 CellValueChanged 이벤트를 트리거합니다.

관련 문제