关于TreeView加载问题
最近开发时遇到一个比较奇怪的问题,希望有高手帮忙解答一下,下面贴代码:
private void LoadTree()
{
tree.BeginUpdate();
try
{
tree.Nodes.Clear();
TreeDatas datas = LoadData(); //从数据库获取数据
TreeNode rootNode = tree.Nodes.Add(datas.Name); //添加根节点
AddChildren(rootNode, datas); //递归添加子节点
}
finally
{
tree.EndUpdate();
tree.ExpandAll();
}
}
上面的大致就是加载TreeView的代码(修改了部分代码以便大家阅读)。一共4000多条数据,如果正常运行程序,大概TreeView要10s-20s才能显示出来,但是只要在程序中任意处加入断点,比如红色部分,运行到断点马上按F5,TreeView就立刻加载完毕并显示,总共时间大概1s-2s,这是什么原因?
TreeView
------解决方案--------------------因为由于递归的原因你的BeginUpdate和EndUpdate没有配对。
------解决方案--------------------问题没发现,
有一点建议
TreeDatas datas = LoadData(); //从数据库获取数据
这行似乎写在TreeView变更之前更为合适,你说呢