我有一个有5000个节点的treeview我想要为所有5000个节点写图像。我创建了一个示例应用程序,我就像这样一个节点一样悸动。
private void button1_Click(object sender, EventArgs e)
{
treeView1.ImageList = imageList1;
TreeNode rootNode = treeView1.Nodes.Add("USA");
TreeNode states1 = rootNode.Nodes.Add("New York");
states1.ImageIndex = 1;
AnimateThrobber(states1);
}
bool runThrobber = true;
private void AnimateThrobber(TreeNode animatedNode)
{
BackgroundWorker bg = new BackgroundWorker();
bg.DoWork += new DoWorkEventHandler(delegate
{
while (runThrobber)
{
this.Invoke((MethodInvoker) delegate
{
animatedNode.ImageIndex++;
if (animatedNode.ImageIndex >= imageList1.Images.Count)
animatedNode.ImageIndex = 0;
else
animatedNode.ImageIndex = 1;
});
Thread.Sleep(500);
}
});
bg.RunWorkerAsync();
}
这仅适用于一个节点,但我想为除root之外的所有子节点添加图像跳动。因此,指导我如何继续,因此我的应用程序将不会占用大量内存或缓慢。感谢