2014-10-31 2 views
0

winform 응용 프로그램의 데이터 격자보기에 동적으로 확인란을 만들었습니다.동적으로 생성 한 gridview에서 하나의 확인란 만 선택하도록 사용자를 제한하는 방법

DataGridViewCheckBoxColumn myCheckedColumn = new DataGridViewCheckBoxColumn() 
       { 
        Name = "MyColumn", 
        FalseValue = 0, 
        TrueValue = 1, 
        Visible = true 
       }; 

한 번에 하나의 체크 박스 만 선택하도록 사용자를 제한하고 싶습니다.

직접 속성이 있습니까?

나는이 질문에 대한 답을 찾았지만 CellContentClick 이벤트는 동적으로 생성 된 확인란처럼 트리거를 얻지 못합니다. 내를 테스트 CellContentClick 상관없이 자신의 열을 생성하는 방법, 모든 셀 발생하지 않습니다에서

private void mydatagridview_CellContentClick(object sender, DataGridViewCellEventArgs e) 
     { 
      if ((sender as DataGridView).CurrentCell is DataGridViewCheckBoxCell) 
      { 
       if (Convert.ToBoolean(((sender as DataGridView).CurrentCell as DataGridViewCheckBoxCell).Value)) 
       { 
        int currentcolumnclicked = e.ColumnIndex; 
        int currentrowclicked = e.RowIndex; 
        foreach (DataGridViewRow dr in associatinggridView.Rows) 
        { 
         dr.Cells[currentcolumnclicked].Value = false; 
        } 
        associatinggridView.CurrentRow.Cells[currentrowclicked].Value = true; 
       } 
      } 
     } 
+3

확인란 대신 라디오 버튼을 사용 했습니까? – Onots

+0

디자인 별로는 디자인이 일반화되어 있으므로 확인란을 사용해야합니다. ( – Neo

답변

1

.

void mydatagridview_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    int col = yourCheckboxColumnIndex; 
    for (int r = 0; r < mydatagridview.Rows.Count; r++) 
     if (r != e.RowIndex && e.ColumnIndex == col) 
      mydatagridview[col , r].Value = false; 
} 
+0

이제는 이벤트를 발생시킬 수도 있습니다 :) 그러나 여러 확인란을 선택하지 않도록 사용자를 제한하려면 어떻게해야합니까? 덕분에 – Neo

+1

글쎄, 그건 위의 코드 __does__ : 클릭 한 모든 셀을 선택 취소! – TaW

+0

네, 그 코드를 시도했습니다 :) thanks – Neo

관련 문제