CurrencyManager cm=(CurrencyManager)BindingContext[bindingsource1.Datasource];
foreach(DataGridviewRow dr in datagridview1.Rows)
{
datagridview1.SuspendLayout();
if(dr.Cells[0].Value.Tostring()=="Somevalue")
{
dr.Visible=True;
}
else
{
cm.SuspendBinding();
dr.Visible=false;
cm.ResumeBinding();
}
}
这段代码工作得很好,但是执行它需要花费很多时间。在这个操作中有什么方法可以提高速度吗?有什么解决办法吗?
Thanks in Advance
我想这样就可以了,而且会更快。
datagridview1.SuspendLayout();
foreach(DataGridviewRow dr in datagridview1.Rows)
{
dr.Visible = dr.Cells[0].Value.ToString() == "Somevalue";
}
datagridview1.ResumeLayout();
因为您只修改行可见性,所以不需要保留绑定上下文。在循环前暂停一次布局,循环后恢复。