Reputation: 115
I want to simplify this code:
DataGridViewColumn column1 = dataGridView1.Columns[0];
column1.Width = 300;
DataGridViewColumn column2 = dataGridView2.Columns[0];
column2.Width = 300;
by putting it info a foreach loop. I tried this:
foreach (DataGridView dgv in this.Controls.OfType<DataGridView>())
{
DataGridViewColumn column = dgv.Columns[0];
column.Width = 300;
}
I didn't work - do you know where is the problem?
Upvotes: 0
Views: 2420
Reputation: 216243
You should loop over the Columns collection of your DataGridView
foreach (DataGridViewColumn column in dataGridView1.Columns)
column.Width = 300;
if you need to loop only over the first two columns then
foreach (DataGridViewColumn column in dataGridView1.Columns
.Cast<DataGridViewColumn>()
.Take(2))
column.Width = 300;
or for all DataGridViews in your form
foreach(DataGridView dgv in this.Controls.OfType<DataGridView>())
foreach (DataGridViewColumn column in dgv.Columns)
column.Width = 300;
Upvotes: 1