일반적으로 DataGridView에서 Cell 값이 변경 되었을 때의 처리를 원할 경우 CellValueChanged 이벤트 핸들러를 사용하면 됩니다. 하지만 CheckBoxCell의 경우는 이 이벤트가 바로 발생하지가 않습니다. CheckBoxCell의 경우는 조금 다르게 처리를 해주어야 합니다.
// 직접 셀값이 변경됨을 알림
private void OnMacrosCurrentCellDirtyStateChanged(object sender, EventArgs e)
{
    DataGridView dvg = sender as DataGridView;
    if (null != dvg && dvg.IsCurrentCellDirty)
    {
        dvg.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

위의 이벤트 핸들러를 추가해주면 CheckBoxCell의 경우에도 값이 변경되었을때 CellValueChanged 이벤트 함수가 바로 호출되게 됩니다.

관련 링크 1 : MSDN - DataGridView.CellValueChanged Event
관련 링크 2 : MSDN - DataGridView.CurrentCellDirtyStateChanged Event
  1. BlogIcon 구차니 2011.05.29 21:14 신고

    MFC 구버전만 사용했는데
    CCheckEditbox 였나 이런 확장버전 사용하던 기억이 나네요 ^^;

    후우.. 요즘에 전 점점 프로그램과 멀어지는 느낌이에요 ㅠ.ㅠ

+ Recent posts