2016-11-14 1 views
0

내 Windows 양식에서 10 datagridview가 있습니다. 그들은 정확히 동일합니다. 즉 열이 정확히 동일하다는 뜻입니다. ID는 myGrid1, myGrid2, myGrid3, myGrid4 ..... myGrid10과 같습니다. 이제 모든 DataGridview를 한 번에 반복하고 싶습니다.루프를 통해 다중 datagridview

string prodName = ""; 
    for (int i = 1; i <= 10; i++) 
     { 
      foreach (DataGridViewRow dr in myGrid[i].Rows) 
      { 
       prodName += dr.Cells["ProductName"].Value 
      } 
     } 

그러나 myGrid [i]는 분명히 존재하지 않습니다. 각 datagridview를 별도로 루프 할 수 있지만이를 수행하는 쉬운 방법이 있습니까?

+1

'VAR 그리드 (및 String.format ("에는 myGrid {0}"I)에 해당) 등 .FirstOrDefault 된 DataGridView() '의 foreach –

+0

(grid.Rows의 DataGridViewRow dr)가 작동하지 않습니다. –

+0

캐스트로주의하십시오 :'as DataGridView' –

답변

1

희망이 도움이됩니다. = this.Controls.Find

foreach (Control x in this.Controls) 
{ 
    if (x is DataGridView) 
    { 

     foreach (DataGridViewRow dr in (DataGridView(x)).Rows) 
     { 
      prodName += dr.Cells["ProductName"].Value 
     } 
    } 
} 

또는

foreach (DataGridView dgv in this.Controls.OfType<DataGridView>()) 
{ 
    foreach (DataGridViewRow dr in dgv.Rows) 
    { 
     prodName += dr.Cells["ProductName"].Value 
    } 
} 
관련 문제