2016-11-14 6 views
0

私のWindowsフォームでは、10のdatagridviewを持っています。彼らはまったく同じです、私は列がまったく同じであることを意味します。 IDはmyGrid1、myGrid2、myGrid3、myGrid4 ..... myGrid10のようになります。 今すぐすべてのdatagridviewを一度にループしたいと思います。複数のデータグリッドビューをループする

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

しかし、明らかにmyGrid [i]は存在しません。 私は各データグリッドビューを別々にループすることができますが、これを行う簡単な方法はありますか?

+1

'VARグリッド(String.Formatの( "myGrid {0}"、I)、TRUE)DataGridViewのよう.FirstOrDefault();' –

+0

のforeach (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 
    } 
} 
関連する問題