我在 DataGridView 中显示最多 100,000 行的表。该表有一列包含大字符串。我发现设置AutosizeMode
为AllCells
导致应用程序在计算所需宽度时冻结很长时间。作为妥协,我将 Autosize 模式设置为 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 将根据显示的行设置列宽。但是,这仅在加载表格时发生一次,但滚动事件不会触发列宽的更改。