ما هي أفضل طريقة للقيام بـ Throbber في C#؟
سؤال
على وجه التحديد ما أتطلع إلى القيام به هو جعل أيقونات العقد الموجودة في نظام التحكم 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