【发布时间】:2021-07-16 03:09:41
【问题描述】:
似乎对 DataGridView 中所有单元格的中心内容调用基于列的分配非常慢。例如,使用下面的代码是很慢的:
For j As Integer = 0 To UBound(columnheaders) - 1
datagridview1.Columns(j).SortMode = DataGridViewColumnSortMode.Automatic
datagridview1.Columns(j).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Next
如果上面的代码被注释掉,DataGridView 加载速度会更快,但单元格条目没有居中。因此,是否有更快的解决方法?
【问题讨论】:
-
我很好奇没有 SortMode 的性能是什么,只是为了确保它是对齐问题?此外,问题也可能是 DefaultCellStyle 尚未初始化。如果我没记错的话,DefaultCellStyle 可能为空,但是当您尝试对其进行设置时,它会查找要抓取的 CellStyle 的层次结构。因此,由于它在链条上工作以获得起始样式,因此可能会有延迟。
-
我确实发现处理速度较慢是由于单元格居中而不是排序顺序的设置。有趣的是,使用的居中语法似乎真正涉及通过迭代循环来居中数据。我的直觉是,到现在为止,MS 已经开发出某种在添加数据时调用单元对齐的幕后方法。
标签: c# vb.net datagridview centering