Я уверен, что причина строки кода ...
mainTable.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
не удается из-за того, что DataGridView
mainTable
еще не был добавлен в форму.
Любые команды пользовательского интерфейса, введенные ДО добавления DataGridView
в форму, будут игнорироваться.
Добавление DataGridView
к форме ДО того, как вы попытаетесь изменить ее столбцы, должно работать должным образом. Размещенный код НЕ отображается при добавлении сетки в форму.
DataGridView mainTable = new DataGridView();
DataTable table = new DataTable();
table.Columns.Add("A");
table.Columns.Add("B");
// ... skipping the part where I populate the data in the table, I know the entire data is truly there...
mainTable.DataSource = table;
this.Controls.Add(mainTable); // <- UI commands not ignored
mainTable.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;