树视图节点的图像悸动

时间:2013-04-02 15:04:14

标签: c# winforms treeview

我有一个有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之外的所有子节点添加图像跳动。因此,指导我如何继续,因此我的应用程序将不会占用大量内存或缓慢。感谢

0 个答案:

没有答案