C#使用treeview刷新屏闪

我想实现treeview利用节点使用流程的运行情况,我在更新节点的前景色及Tag时,treeview闪烁,代码如下

  for (int i = 0; i < stepInfo.Count(); i++)
            {
                if (!treeView1.Nodes.ContainsKey(i.ToString()))
                {
                    treeView1.Nodes.Add(i.ToString(), "流程" + i.ToString());                   
                }
                if (treeView1.Nodes.Count >= stepInfo.Count())
                {
                    for (int j = 0; j < stepInfo[i].stepcount.Count(); j++)
                    {
                        if (!treeView1.Nodes[i].Nodes.ContainsKey("a" + (10000 + stepInfo[i].stepcount[j]).ToString()))
                        {
                            treeView1.Nodes[i].Nodes.Add("a" + (10000 + stepInfo[i].stepcount[j]).ToString(), stepInfo[i].stepcount[j].ToString() + "步");
                        }
                    }

                    if (stepInfo[i].c != stepInfo[i].step)
                    {
                        stepInfo[i].c = stepInfo[i].step;
                        for (int x = 0; x < treeView1.Nodes[i].Nodes.Count; x++)
                        {
                            if (treeView1.Nodes[i].Nodes[x].Text == stepInfo[i].step.ToString() + "步")
                            {
                              
                                treeView1.Nodes[i].Nodes[x].Tag = "运行中!";
                                treeView1.Nodes[i].Nodes[x].ForeColor = Color.Red;
                                
                            }
                            else
                            {
                                if (treeView1.Nodes[i].Nodes[x].Tag != null && !string.IsNullOrEmpty(treeView1.Nodes[i].Nodes[x].Tag.ToString()))
                                {
                                   
                                    treeView1.Nodes[i].Nodes[x].Tag = "";
                                    treeView1.Nodes[i].Nodes[x].ForeColor = SystemColors.ControlText;
                                  
                                }
                               

                            }
                           
                        }
                       
                    }
                }
            }

试试下面的,代码来源:


try
{
    treeView.BeginUpdate();

    // 题主原来代码
}
finally
{
    treeView.EndUpdate();
}