¿Cuál es la mejor manera de hacer throbber en C#?
Pregunta
Específicamente, lo que estoy buscando hacer es hacer que los íconos de los Nodos en mi control System.Windows.Forms.TreeView vibren mientras se lleva a cabo una operación de carga prolongada.
Solución
Si carga cada cuadro en una ImageList, puede usar un bucle para actualizar cada cuadro.Ejemplo:
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(); }
Obviamente hay más de unas pocas maneras de implementar esto, pero aquí está la idea básica.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow