Я отображаю таблицу с до 100 000 строк в DataGridView. В таблице есть один столбец, который содержит большие строки. Я обнаружил, что установка AutosizeMode
в AllCells
приводит к зависанию приложения в течение длительного времени при вычислении необходимой ширины.
В качестве компромисса я установил режим автоматического изменения размера на DisplayedCells.
Затем я связал метод с событием прокрутки dataGrid:
public void MethodThatBindsDataToTheDatagridview(DataTable table)
{
dataGrid.Source = table;
dataGrid.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
dataGrid.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
}
public void DataGridScroll(object sender, ScrollEventArgs e)
{
((DataGridView)sender).Update();
}
Я тоже пробовал то же самое с Refresh
методом. Я ожидаю, что DataGrid установит ширину столбцов в соответствии с отображаемыми строками. Однако это происходит только один раз, когда таблица загружается, но событие прокрутки не вызывает изменения ширины столбцов.