2014-04-17 2 views
0

안녕하세요. EX : pictuebox1 디스플레이 pic1 다음 pictuebox 2 디스플레이 pic2 에 대한 내 그림 상자에서 스왑 그림에 문제가 있습니다. 그 다음 사진을 교환 한 다음 picturebox1 디스플레이 pic2 및 picturebox2 디스플레이 pic3 다음 그들은 다시 바꾼다. 어떻게해야합니까? 그 누군가가 나를 도울 수 있다면 그것은 내 머리를 아프게하는 것이고 나는 매우 감사해야한다.교환 방법

string[] picture = { 
         @"ImageResource\Die_Images\die1.jpg", 
         @"ImageResource\Die_Images\die2.jpg", 
         @"ImageResource\Die_Images\die3.jpg", 
          @"ImageResource\Die_Images\die4.jpg", 
          @"ImageResource\Die_Images\die5.jpg", 
           @"ImageResource\Die_Images\die6.jpg"}; 
    int index = 0; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     index++; 
     if (index >= picture.Length) 
      index = 1; 
     else 

      pictureBox1.ImageLocation = string.Format(@"ImageResource\Die_Images\die{0}.jpg", index); 
      pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; 
      if (index >= picture.Length) 
       index = 0; 
      else 
      pictureBox2.ImageLocation = string.Format(@"ImageResource\Die_Images\die{0}.jpg", index); 
      pictureBox2.SizeMode = PictureBoxSizeMode.StretchImage; 


    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     timer1.Start(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     timer1.Stop(); 
    } 
+0

하나 이상의 줄이있는 if/else 문을 괄호로 묶어야합니다. – Jonesopolis

+0

가리키는 것에 감사드립니다. – TheBoringGuy

+0

어디에서 타이머 간격을 설정합니까? 그리고이 winforms/wpf – Sayse

답변

0

잘 모르겠지만 시도해보십시오.

private int operationState = 0; 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    switch(operationState) 
    { 
     case 0://Next image 
     { 
      pictureBox1.ImageLocation = picture[index]; 
      pictureBox2.ImageLocation = picture[index + 1]; 

      index++; 
      if (index >= (picture.Length - 1)) 
      { 
       index = 0; 
      } 
      break; 
     } 
     case 1://Swap 
     { 
      string tempLocation = pictureBox1.ImageLocation; 
      pictureBox1.ImageLocation = pictureBox2.ImageLocation; 
      pictureBox2.ImageLocation = tempLocation; 
      break; 
     } 
    } 

    operationState = (++operationState) % 2; 
} 

나는 틱 이벤트에서 SizeMode 설정 코드, 당신은 다른 곳에서 한 번만 할 수 있습니다 제거.

+0

덕분에 전반적으로 도움이됩니다 :) – TheBoringGuy