【问题标题】:Animation in .gif is not showing in windows Form.gif 中的动画未显示在 Windows 窗体中
【发布时间】:2016-08-19 08:39:56
【问题描述】:

我对 c# 和 windows 窗体非常陌生。

我正在尝试将 PictureBox 添加到 windows 窗体并在窗体中显示数据之前显示动画 .gif 图像。

这是 PictureBox 的代码:

private System.Windows.Forms.PictureBox pictureBox1;

            // 
            // pictureBox1
            // 
            this.pictureBox1.BackColor = System.Drawing.SystemColors.AppWorkspace;
            this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
            this.pictureBox1.Location = new System.Drawing.Point(374, 442);
            this.pictureBox1.Name = "pictureBox1";
            this.pictureBox1.Size = new System.Drawing.Size(16, 16);
            this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
            this.pictureBox1.TabIndex = 19;
            this.pictureBox1.TabStop = false;
            this.pictureBox1.Visible = false;                

现在,点击一个按钮,应该将 gif 图像加载到图片框中。代码如下:

private void scanButton_Click(object sender, EventArgs e)
        {
            pictureBox1.Visible = true;
            pictureBox1.Refresh();  
        }

现在,当我单击“扫描按钮”按钮时,图像变得可见,但动画不起作用。

请任何人帮助我这里发生了什么?

谢谢!

【问题讨论】:

  • 为了让您的 .gif 动画正常工作,您的主 (UI) 线程应该是空闲的。如果您在主线程上执行任何进程,那么您将无法获得动画效果。
  • 您可能会发现这篇文章很有用:Show Transparent Loading Spinner above other Controls

标签: c# winforms visual-studio desktop-application picturebox


【解决方案1】:

为了让您的 .gif 动画正常工作,您的 主 (UI) 线程应该是空闲的。如果您在主线程上执行任何进程,那么您将无法获得动画效果。

从您的问题来看,您似乎是在单击按钮时执行扫描操作。这可能是问题所在。

要摆脱这个问题,你必须确保你的主线程是空闲的,并且任何操作(如扫描)都应该在单独的线程上。

【讨论】:

    【解决方案2】:

    只需在ImageLocation 中指定图片的路径即可。

    pictureBox1.ImageLocation = "C:\\throbber.gif";
    

    PictureBox 会明白这是一个动画图像并播放它。禁用PictureBoxForm 将停止播放动画。

    【讨论】:

      【解决方案3】:

      如果您真的需要使用图片框,您可以遍历一组图像。但我强烈建议使用 WebBrowser(注意它基本上是 IE)

      这应该可以帮助您处理所有使用 Windows 窗体的动画 Simple animation using C#/Windows Forms

      【讨论】:

        猜你喜欢
        • 2010-09-15
        • 2012-04-11
        • 2012-11-19
        • 1970-01-01
        • 2015-12-01
        • 1970-01-01
        • 2012-09-15
        • 2013-03-14
        • 1970-01-01
        相关资源
        最近更新 更多