Каков наилучший способ сделать троббер на С#?

StackOverflow https://stackoverflow.com/questions/60151

  •  09-06-2019
  •  | 
  •  

Вопрос

В частности, я хочу, чтобы значки узлов в моем элементе управления System.Windows.Forms.TreeView пульсировали во время длительной операции загрузки.

Это было полезно?

Решение

Если вы загружаете каждый кадр в 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();
    }

Очевидно, что существует множество способов реализовать это, но вот основная идея.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top