2009-03-23 4 views
1

DataGridview 창 형식의 확인란이 있고 이벤트 처리기가 있습니다. cell_Click 셀을 클릭 할 때 확인란이 선택되어 있으면 true를 표시하는 확인란의 datagridview 열을 선택합니다. 확인란이 선택되어 있지 않은 경우에만 true입니다. DataGrid 뷰 셀이 선택됨) 체크 박스가 선택되어 있지 않습니다. .i gettype 열에 대해 시도한 결과 DatagridViewCheckBox가 표시되었지만 잘못된 값이 표시되는 유형을 발견했습니다. ??? 여기DatagridView 확인란을 선택 했습니까?

답변

0

몇 가지 :

셀 클릭 이벤트는 단지 사용자가 데이터 그리드보기에 마우스 버튼으로 클릭 한 것을 의미
  • 은 당신이 찾고있는 것이다 아마 CellValueChanged
  • 이 이벤트 변경된 셀의 좌표를 알려줍니다. 확인란의 열에 있는지 확인한 다음 셀에 대한 참조를 가져 와서 셀을 확인할 수 있습니다. 값이 참인지 거짓인지 확인할 수 있습니다. DataGridViewCheckBoxColumn에서 값을 찾지는 않을 것입니다. 셀 수준에있을 것이고, 열의 유형에 관계없이 항상 cell.Value에 저장된 값을 찾을 수 있습니다.
9

제대로 이해한다면 확인란의 값이 기본 데이터와 맞지 않는다고 말하는 것입니까?

데이터가 업데이트되어 '더티'(예 : 아직 데이터 소스에 커밋되지 않았습니다. 이 같은 이벤트 핸들러를 추가하는 경우 :

private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e) 
{ 
    if (dataGridView1.CurrentCell is System.Windows.Forms.DataGridViewCheckBoxCell) 
    { 
     dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit); 
    } 
} 

그런 다음 그 데이터 소스를 업데이트해야하고 셀을 쿼리 할 때 올바른 확인란 상태를해야합니다.

관련 문제