2013-03-15 2 views
1

열 인덱스 12에 체크 박스가있는 DataGridview가 있습니다. 체크 된 행을 반복하고 항목을 제거해야하는 도구 스트립에 단추가 있습니다.DataGrid보기 체크 박스가 선택되지 않았습니다.

코드에서 셀이 검사되었음을 감지하지 못했습니다 (bChecked 변수는 항상 false 임). 디버깅 할 때 그 값은 false입니다.

foreach (DataGridViewRow row in dataGridView1.Rows) 
{ 
    DataGridViewCheckBoxCell oCell = row.Cells[12] as DataGridViewCheckBoxCell; 
    bool bChecked = (null != oCell && null != oCell.Value && true == (bool)oCell.Value); 

    if (bChecked == true) 
    { 
     //Do something 
    } 
} 

아이디어가 있으십니까?

감사합니다.

+0

색인 (12)이 잘못되어 다른 컬럼을 읽었을 가능성이 있습니까? 'DataGridView'의 열이 미리 정의 된 경우'row.Cells [this.dgvCheckBoxColumn.Name]'과 같은 열의 변수를 사용하는 것이 더 좋습니다. 하드 코딩 된 값을 볼 때 항상 나쁘게 채 웁니다. :) – Fabio

답변

1

DataGridViewCheckBoxCell의 CellValueChanged 이벤트를 사용하는 것이 더 좋지 않습니까? 이 이벤트는 체크 박스 셀의 값이 변경 될 때마다 발생합니다.

비고란에 DataGridViewCell.Value을 참조하십시오.

이벤트를 구독하면 확실한 방법으로 셀을 검사 할 수 있습니다.

관련 문제