2016-11-14 2 views
0

В моей форме окна у меня есть 10 datagridview. Они точно такие же, я имею в виду столбцы точно такие же. Иды похожи на myGrid1, myGrid2, myGrid3, myGrid4 ..... myGrid10. Теперь я хочу пропустить все данные datagridview сразу.Loop через несколько 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}", я), правда) .FirstOrDefault(), как DataGridView;' –

+0

Еогеасп (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 
    } 
} 
Смежные вопросы