2017-12-21 55 views
0

내 프로젝트는 Windows Forms 프로젝트이며 DataGridView가 있습니다. DataGridView에는 편집 가능한 CheckBoxColumn 열이 있습니다. CellBeginEdit 이벤트를 사용하여 CheckBox가 선택되었는지 또는 선택 취소되었는지를 결정합니다. 처음 클릭 할 때 아무런 문제가 없지만 두 번째, 세 번째 또는 두 번 이상 클릭하면 CellBeginEdit 이벤트가 실행되지 않습니다.DataGridView CellBeginEdit을 한 번만 실행

+1

어떻게 이벤트가 실행되지 않는 것으로 나타 났습니까? 코드를 공유 할 수 있습니까? –

+0

이벤트 메서드의 첫 번째 줄에 중단 점을 넣습니다. 발사가 아닙니다. –

+0

첫 번째 클릭 후 다른 셀로 이동 중입니까? – OhBeWise

답변

0

귀하가 말씀하신 의견에서 이 아니라 해당 첫 번째 클릭 후 다른 셀로 이동하는입니다.

하지만 다른 편집 가능한 셀을 집중하고 다시 콤보 셀을 클릭하면 첫 번째 클릭 후, 이벤트가

이 발사되는

으로 설계된 동작입니다. ComboBoxCell은 포커스가있는 편집 모드로 들어갑니다. 셀이 초점을 유지하는 동안 CellBeginEdit이 트리거되지 않습니다. 다음과 같이 EndEdit()을 호출하여이 동작을 건너 뛸 수 있습니다.

private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (this.dataGridView1.CurrentCell is DataGridViewCheckBoxCell) 
    { 
     this.dataGridView1.EndEdit(); 
    } 
}