2016-08-19 70 views
2

我對c#和windows窗體非常陌生。.gif中的動畫未在窗口中顯示形式

我正在嘗試的是將一個PictureBox添加到一個Windows窗體並在顯示窗體中的數據之前顯示一個動畫的.gif圖像。

下面是圖片框代碼:

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(); 
     } 

現在,當我點擊按鈕「掃描按鈕」,圖像變得可見,但動畫不工作。

請任何人都可以幫助我這裏發生了什麼?

謝謝!

+1

爲了讓您的.gif動畫起作用,您的主(UI)線程應該是免費的。如果你正在主線程上執行任何進程,那麼你將不會獲得動畫效果。 –

+0

您可能會覺得這篇文章有用:[顯示透明加載微調上方其他控件](http://stackoverflow.com/questions/37220327/show-transparent-loading-spinner-above-other-controls) –

回答

0

只需將路徑指定給ImageLocation中的圖像即可。

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

PictureBox就會明白,它的動畫圖像,並且發揮它。禁用PictureBoxForm將停止播放動畫。

-1

如果您確實需要使用圖片框,您可以迭代圖片集合。但我強烈建議您使用web瀏覽器(介意它基本上是IE)

這會幫助你使用Windows所有動畫形成 Simple animation using C#/Windows Forms

3

爲了您的.gif注意動畫的工作,你的主(UI)線程應自由。如果您正在主線程上執行任何進程,那麼您將不會獲得動畫效果。

從你的問題,似乎你正在執行掃描操作點擊按鈕。這可能是問題所在。

爲了擺脫這個問題,你必須確保你的主線程是空閒的,任何操作(如掃描)都應該在單獨的線程上。