Вы можете изменять размер столбцов каждый раз, когда добавляете новый
. Вы можете проверить это
PS: убедитесь, что для заголовка строки установлено значение false, чтобы не было конфликтас шириной сетки
private void updateWidth()
{
foreach (DataGridViewColumn item in dataGrid.Columns)
{
item.Width = dataGrid.Columns.Count == 0 ?
dataGrid.Width
: (int)(dataGrid.Width / dataGrid.Columns.Count);
}
}
int _index = 0;
private void button1_Click(object sender, EventArgs e){
var col = new DataGridViewColumn();
col.Name = $"Col{_index++}";
col.CellTemplate = new DataGridViewTextBoxCell();
dataGrid.Columns.Add(col);
updateWidth();
}
}
Для фиксированной ширины вы можете сделать (с AutoSizeColumnsMode, установленной в None):
int _index = 0;
int fixedWidth = 200;
private void button1_Click(object sender, EventArgs e)
{
var col = new DataGridViewColumn();
col.Name = $"Col{_index++}";
col.Width = fixedWidth;
col.CellTemplate = new DataGridViewTextBoxCell();
dataGrid.Columns.Add(col);
}