动态设置dataGridView的列宽问题,急...
本帖最后由 hugofgh 于 2013-09-04 16:38:58 编辑
面板上有很多Datagridview,动态设置每个dataGridView的列宽时很耗时间,一个datagridview大概12列左右,现在设置完一个dataGridView的列宽需要耗时2到3秒。
设置列宽时已经取消了dgvDataViewer_ColumnWidthChanged和dgvDataViewer_CellFormatting事件。
怎么样才能缩短时间,为什么要这么长时间,求解释,求解决办法。
代码如下:
_gridview.Columns[1].Width = 70;
_gridview.Columns[2].Width = 130;
_gridview.Columns[3].Width = 120;
for (int j = 4; j < _gridview.Columns.Count; j++)
{
_gridview.Columns[j].Width = 120;
}
补充:如果这个Datagridview之前进去过,再设置列宽需要耗时2到3秒,但是如果这个Datagridview没有进去过,列宽很快就设置完了。
------解决方案--------------------AutoSizeColumnsMode = none;
AutoSizeRowsMode = none;
多个Grid时,只对当前显示的Grid设置列宽
120000个数据
开始Load 中的
15:40:07.942
15:40:07.957
将所有的列宽修改后点击按钮
15:41:06.270
15:41:06.270
private void Form1_Load(object sender, EventArgs e)
{
var dt = CreateDisTable();
for (int i = 1; i <= 10000; i++)
{
DataRow nr = dt.NewRow();
for (int j =0; j < 12; j++)