2016-08-19 9 views
2

私はC#とWindowsフォームの新機能です。.gifのアニメーションがウィンドウに表示されないフォーム

私が試みているのは、フォームにデータを表示する前に、WindowsフォームにPictureBoxを追加し、アニメーション化された.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はそれがアニメーション画像だということを理解し、それを再生します。 PictureBoxまたはFormを無効にすると、アニメーションの再生が停止します。

-1

本当にピクチャボックスを使用する必要がある場合は、画像のコレクションを繰り返し処理できます。しかし、私は強く

これはすべてのアニメーションは、Windowsを使用してのお手伝いをする必要があります(これは基本的にIEで気)WEBブラウザを使用することをお勧め動作するようにあなたの.GIFアニメーションについて Simple animation using C#/Windows Forms

3

を形成して、あなたのメイン(UI)スレッドがあるべき無料です。メインスレッドでプロセスを実行している場合、アニメーション効果は得られません。

あなたの質問から、ボタンのクリックでスキャン操作を実行しているようです。それは問題かもしれません。

この問題を解決するには、メインスレッドが無料で、スキャン(スキャン)などの操作が別のスレッドにあることを確認する必要があります。

関連する問題