У меня есть DataGridView с двумя столбцами. Первый имеет AutoSizeMode DataGridViewAutosizeColumnMode.allcells , второй One DataGridViewAutosizeColumnMode.fill .
Grid встроена в родительскую панель с использованием Dockstyle.fill .dc1 = new DataGridViewCheckBoxColumn();
dc1.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
...
dc2 = new DataGridViewTextBoxColumn();
dc2.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
...
dgv = new DataGridView();
...
dgv.Columns.Add(dc1);
dgv.Columns.Add(dc2);
< /code>
Как только сетка содержит данные (установлен данные данных), я хочу получить фактический размер всех столбцов
, чтобы настроить ширину родителей. < /p>
int offset = 0;
if (MaxDisplayedItems < dgv.RowCount)
offset += SystemInformation.VerticalScrollBarWidth;
Width = dc1.GetPreferredWidth(dc1.AutoSizeMode, true) + dc2.GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true) + offset;
< /code>
К сожалению, рассчитанная ширина слишком мала. Сетка показывает некоторые значения второго столбца с «...»
Как получить реальную ширину всех столбцов?>
Подробнее здесь: https://stackoverflow.com/questions/796 ... erredwidth