在C#中做th子的最佳方法是什么?

时间:2020-03-05 18:52:36  来源:igfitidea点击:

具体来说,我想要做的是在进行长时间的加载操作时,使System.Windows.Forms.TreeView控件中Node的图标跳动。

解决方案

回答

如果将每个帧加载到ImageList中,则可以使用循环更新到每个帧。
例子:

bool runThrobber = true;
    private void AnimateThrobber(TreeNode animatedNode)
    {
        BackgroundWorker bg = new BackgroundWorker();
        bg.DoWork += new DoWorkEventHandler(delegate
        {
            while (runThrobber)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    animatedNode.SelectedImageIndex++;
                    if (animatedNode.SelectedImageIndex >= imageList1.Images.Count) > animatedNode.SelectedImageIndex = 0;
                });
                Thread.Sleep(100);
            }
        });
        bg.RunWorkerAsync();
    }

显然,有多种方法可以实现此目的,但这是基本思想。