动画GIF请等待

时间:2012-03-15 18:47:49

标签: winforms animation

我在Windows应用程序中有一个请等待的表单,在长时间运行的任务之前呈现,请等待包含一个动画gif,在此过程中需要“旋转”但我无法完成这项工作。

我终于使用以下代码正确显示了表单:

frmChooser chooser = frmChooser.Instance;
chooser.Url = this.UrlTextBox.Text;                
frmBuildNotification fb = new frmBuildNotification();
fb.Show(this);
fb.Update();
Application.DoEvents();
chooser.BuildTreeView();
fb.Close();
this.Hide();
chooser.Show(this);

GIF包含在PictureBox

frmBuildNotification控件中

我在某处读过你需要重新绘制图像的形式来制作动画,但这看起来有点单调乏味?

1 个答案:

答案 0 :(得分:1)

您需要保持DoEvents消息泵的运行,如果您将通知表单放在另一个线程上,它也会有所帮助。试试这个:

        bool done = false;
        frmBuildNotification fb = null;
        ThreadPool.QueueUserWorkItem((x) =>
        {
            using (fb = new frmBuildNotification())
            {
                fb.Show();
                while (!done)
                    Application.DoEvents();
                fb.Close();
            }
        });
        frmChooser chooser = frmChooser.Instance;
        chooser.Url = this.UrlTextBox.Text;
        chooser.BuildTreeView();
        done = true;
        this.Hide();
        chooser.Show(this);