3

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

4

1 回答 1

4

如果将每一帧加载到 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();
    }

显然有不止几种方法可以实现这一点,但这是基本思想。

于 2008-09-13T00:08:10.137 回答