2016-08-15 4 views
0

私はメモテストを行い、2つの異なる画像を押す必要があり、3〜5秒間表示する必要があります。私はThread.Sleep(5000)を試しましたが、それは私に第2のものを表示していません。私は何をすべきか? 私が数秒間見るために設立した唯一の方法は、MessageBoxを置くことでしたが、それは考え方ではなく、私はそれを行うための他の方法を知らない。特定の時間が経過しても2つの画像が表示されないようにする方法

if (pic != null && pic.Name == fondos[i].Name) 
{ 
    if (CantClick == 0) 
    { 
     ParejaActual = listRandom[i].pareja; 
     CantClick = 1; 
     primerI = i; 
     picAnterior = pic; 
     imgAnterior = img; 
     pic.Visible = false; 

    } 
    else if (CantClick == 1) 
    { 
     pic.Visible = false; 
     if (ParejaActual == listRandom[i].pareja) 
     { 
      SoundPlayer simpleSound = (new SoundPlayer(Configuracion.RootFolder + "aplau.wav")); 
      simpleSound.Play(); 
      Ganando++; 
      label3.Text = Ganando.ToString(); 
      //MessageBox.Show("Si"); 
      //NO SE DESTAPA LA SEGUNDA. 
      //Thread.Sleep(5000); 
      CantClick = 0; 
      img.Visible = false; 
      imgAnterior.Visible = false; 
      Application.DoEvents(); 

     } 
     else 
     { 

      (new SoundPlayer(Configuracion.RootFolder + "sad.wav")).Play(); 
      MessageBox.Show("No"); 
      Mal++; 
      CantClick = 0; 
      label4.Text = Mal.ToString(); 
      pic.Visible = true; 
      picAnterior.Visible = true; 
     } 
    } 
} 

ありがとうございます!

+4

フォーム上にSystem.Windows.Forms.Timerオブジェクトを使用する必要があります。 UIコードでThread.Sleepを使用しないでください。 – PMF

答えて

1

Thread.Sleepを使用する代わりに、System.Timersクラスを使用してください。ある間隔の後に、1つの画像を隠し、もう一方の画像を表示するだけです。あなたが他の助けを望むか教えてください。

+0

public変数ではないので、timer_tickに "pic"を再び表示することはできません。どのようにできるのか?プライベートvoid timer3_Tick(オブジェクト送信者、EventArgs e) { counter3--; if(counter3 == 0) { CantClick = 0; picAnterior.Visible = true; picAnterior.Visible = true; Application.DoEvents(); counter3 = 3; timer3.Stop(); } } – sol

関連する問題