题
具体来说,我想要做的是使 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(); }
显然,有多种方法可以实现这一点,但基本思想如下。
不隶属于 StackOverflow