1

因此,我有一个 DataGridView,它禁用了行标题,为多行单元格文本设置了换行模式,并自动调整了行的大小以适应多行文本。

在代码中:

view.RowHeadersVisible = false;
view.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
view.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

问题是设置 AutoSizeRowsMo​​de 属性会使视图更新非常慢,与没有设置它相比。

以下是或多或少相同问题的链接:

http://brianseekford.com/index.php/2010/04/01/datagridview-bug-with-the-autowrap-and-the-autorowsize-not-resizing-rows-on-scroll/

他们的解决方案:

view.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;

view.Scroll +=new ScrollEventHandler(view_Scroll);

private void view_Scroll(object sender, ScrollEventArgs e)
{
   //Workaround for datagrid view bug.
   ((DataGridView)sender).AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders;
   ((DataGridView)sender)AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
}

现在,问题是行标题被禁用,因此我的程序在滚动时崩溃了。

我希望任何人都有解决方案或至少对我能做什么有一些想法。

4

1 回答 1

2

您只需要它来自动调整行大小(不需要view_Scroll)。

view.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
于 2013-08-18T02:09:15.940 回答