我有一个带有Datagridview的表单,它将数据从db加载到绑定源,然后将绑定源设置为datagrid的DataSource
我先调用SuspendBinding()
并将RaiseListChangedEvents
设置为false,然后从数据库填充数据,并在数据填充调用ResumeBinding()
和ResetBindings(false)
并将RaiseListChangedEvents
设置为true
newPriceListSelectBindingSource.RaiseListChangedEvents = false;
newPriceListSelectBindingSource.SuspendBinding();
newPriceListSelectTableAdapter.Fill(dsOrders.NewPriceListSelect, null, int.Parse(trvCategory.SelectedNode.Name), Convert.ToInt32(numericUpDown1.Value));
newPriceListSelectBindingSource.RaiseListChangedEvents = true;
newPriceListSelectBindingSource.ResumeBinding();
newPriceListSelectBindingSource.ResetBindings(false);
在许多Windows操作系统中填写数据完成后,resetbindings(false)
立即调用,但在windows server 2008 r2中这种方法调用非常慢(似乎程序挂起)。
当然,我不确定这取决于窗户
数据行在20列中约为80000行
请帮我解决这个问题。
答案 0 :(得分:0)
我发现了问题
问题出在名为DataGridViewColumn.AutoSizeMode
的网格列属性上,因为其中一列的此属性值为 AllCells ,我将其更改为 DisplayedCells 并修复了问题。