2016-11-14 89 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 
    } 
}