我想实现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;
}
}
}
}
}
}