2016-11-14 120 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

'变种网格= this.Controls.Find(的String.Format( “myGrid {0}”,i)中,真).FirstOrDefault()作为的DataGridView;' –

+0

的foreach (DataGridViewRow dr在grid.Rows中)不起作用 –

+0

注意转换:'DataGridView' –

回答

1

希望这会有所帮助。

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 
    } 
}