Если вы загружаете каждый кадр в 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();
}
Очевидно, что больше, чем несколько способов осуществить это, но вот основная идея.
Если вы посмотрите на это снова, вы действительно должны проверить и посмотреть, находится ли индекс изображения в пределах области imagelist.images, прежде чем увеличивать его. – 2008-09-13 03:19:53