2016-08-19 2 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 이미지가 그림 상자에로드해야 클릭 : 여기

은 PictureBox를위한 코드입니다. 그 코드는 다음과 같이 진행됩니다

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

지금, 내가 버튼 "스캔 버튼"을 클릭하면 이미지가 표시되고 있지만, 애니메이션이 작동하지 않습니다.

아무도 저에게 무슨 일이 일어나고 있는지 알려주세요.

감사합니다.

+1

.gif 애니메이션이 작동하려면 기본 (UI) 스레드가 비어 있어야합니다. 메인 스레드에서 어떤 프로세스를 수행한다면 애니메이션 효과를 얻지 못할 것입니다. –

+0

이 게시물은 유용 할 것입니다 : [다른 컨트롤 위에 Spinner를 투명하게로드하십시오] (http://stackoverflow.com/questions/37220327/show-transparent-loading-spinner-above-other-controls) –

답변

0

ImageLocation의 이미지 경로 만 지정하면됩니다.

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

PictureBox은 애니메이션 이미지가 있다고 이해하고 재생합니다. PictureBox 또는 Form을 사용 중지하면 애니메이션이 재생되지 않습니다.

-1

그림 상자를 실제로 사용해야하는 경우 이미지 모음을 반복 할 수 있습니다. 하지만 난 강력

이 모든 애니메이션이 창을 사용하여 당신을 도움이 될 것입니다 (이것은 기본적으로 IE이다 마음) 웹 브라우저를 사용하는 것이 좋습니다 작동하도록 .gif 중요 애니메이션 Simple animation using C#/Windows Forms

3

를 형성하여 주 (UI) 스레드가 있어야한다 비어 있는. 메인 스레드에서 프로세스를 수행하는 경우 애니메이션 효과를 얻지 못합니다.

귀하의 질문에, 당신은 버튼 클릭으로 스캔 작업을 수행하는 것 같습니다. 그것은 문제 일 수 있습니다.

이 문제를 해결하려면 주 스레드가 비어 있고 스캔과 같은 작업이 별도의 스레드에 있어야합니다.

관련 문제