【发布时间】:2011-01-28 10:57:03
【问题描述】:
我在 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 将根据显示的行设置列宽。但是,这种情况只会在表格加载时发生一次,但滚动事件不会触发列宽的变化。
【问题讨论】:
标签: winforms datagridview autosize