2013-08-05 2 views
1

내 질문에 : 일부 체크 상자를 클릭하면 DataGridView에서 현재 체크 박스 컨트롤의 인덱스를 얻을 수 있습니다. 여기 내 스니커 코드 dataGridView2.RowCount = 5; dataGridView2.ColumnCount = 4;DataGridView에서 행 인덱스 및 Colunms 인덱스를 얻는 방법

 for (int i = 0; i < dataGridView2.ColumnCount; i++) 
     { 
      for (int j = 0; j < dataGridView2.RowCount; j++) 
      { 
       box = new CheckBox(); 
       box.Text = "MyDate"; 
       //box.Size = new System.Drawing.Size(15, 15); 
       dataGridView2.Controls.Add(box); 
       Rectangle rec = dataGridView2.GetCellDisplayRectangle(i, j, true); 
       box.Left = rec.Left; 
       box.Top = rec.Top; 
      } 
     } 


    } 

답변

0

그것은 당신이 DataGridViewCheckBoxColumn 사용하지 않고 DataGridView 순수한 CheckBox ES를 추가하려고 할 것으로 보이는이 접근 방식에 대한 솔루션은 다음과 같이 간단하다 :

for (int i = 0; i < dataGridView2.ColumnCount; i++) 
    { 
     for (int j = 0; j < dataGridView2.RowCount; j++) 
     { 
      box = new CheckBox(); 
      box.Text = "MyDate"; 
      //box.Size = new System.Drawing.Size(15, 15); 
      dataGridView2.Controls.Add(box); 
      Rectangle rec = dataGridView2.GetCellDisplayRectangle(i, j, true); 
      box.Left = rec.Left; 
      box.Top = rec.Top; 
      //Added code 
      box.Tag = new Point(i,j); 
      box.Click += CheckBoxesClicked; 
     } 
    } 
private void CheckBoxesClicked(object sender, EventArgs e){ 
    CheckBox chb = sender as CheckBox; 
    if(chb.Tag != null) { 
     Point coord = (Point)chb.Tag; 
     MessageBox.Show(string.Format("Row index: {0}\nColumn index: {1}", coord.Y, coord.X); 
    } 
}  

당신 대신 DataGridViewCheckBoxColumn을 사용해야하며 그 방법으로 이벤트를 처리 할 수 ​​있습니다. CellContentClick ...

+0

감사합니다! 시도 할 것입니다! – TanNan

0

당신이 DataGridViewCellEventArgs를 얻을 CellContentClick 이벤트 또는 다른 이벤트를 사용하는 경우 다음 당신은

관련 문제