2016-11-04 217 views
-1

我正在創建着名的遊戲井字遊戲。消息框反覆彈出定時器

我面臨一個消息框不斷出現的問題。

private void button1_Click(object sender, EventArgs e) 
    { 
     button1.Text = turn; 
     if (turn=="x") 
     { 
      turn = "0"; 
     } 
     else if (turn=="0") 
     { 
      turn = "x"; 
     } 
     button1.Enabled = false; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     button2.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button2.Enabled = false; 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     button3.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button3.Enabled = false; 
    } 

    private void button4_Click(object sender, EventArgs e) 
    { 
     button4.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button4.Enabled = false; 
    } 

    private void button5_Click(object sender, EventArgs e) 
    { 
     button5.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button5.Enabled = false; 
    } 

    private void button6_Click(object sender, EventArgs e) 
    { 
     button6.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button6.Enabled = false; 
    } 

    private void button7_Click(object sender, EventArgs e) 
    { 
     button7.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button7.Enabled = false; 
    } 

    private void button8_Click(object sender, EventArgs e) 
    { 
     button8.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button8.Enabled = false; 
    } 

    private void button9_Click(object sender, EventArgs e) 
    { 
     button9.Text = turn; 
     if (turn == "x") 
     { 
      turn = "0"; 
     } 
     else if (turn == "0") 
     { 
      turn = "x"; 
     } 
     button9.Enabled = false; 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     if (button1.Text == "x" && button2.Text == "x" && button3.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 

     } 
     else if (button4.Text == "x" && button5.Text == "x" && button6.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 

     } 
     else if (button7.Text == "x" && button8.Text == "x" && button9.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 


     } 
     else if (button1.Text == "x" && button5.Text == "x" && button9.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 


     } 
     else if (button3.Text == "x" && button5.Text == "x" && button7.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 

     } 
     else if (button1.Text == "x" && button4.Text == "x" && button7.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 

     } 
     else if (button2.Text == "x" && button5.Text == "x" && button8.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 

     } 
     else if (button3.Text == "x" && button6.Text == "x" && button9.Text == "x") 
     { 
      MessageBox.Show("User 1 Won"); 

     } 
     else if (button1.Text == "0" && button2.Text == "0" && button3.Text == "0") 
     { 
      MessageBox.Show("User 2 Won"); 

     } 
     else if (button4.Text == "0" && button5.Text == "0" && button6.Text == "0") 
     { 
      MessageBox.Show("User 2 Won"); 


     } 
     else if (button7.Text == "0" && button8.Text == "0" && button9.Text == "0") 
     { 
      MessageBox.Show("User 1 Won"); 


     } 
     else if (button1.Text == "0" && button5.Text == "0" && button9.Text == "0") 
     { 
      MessageBox.Show("User 2 Won"); 
     } 
     else if (button3.Text == "0" && button5.Text == "0" && button7.Text == "0") 
     { 
      MessageBox.Show("User 2 Won"); 
     } 
     else if (button3.Text == "0" && button6.Text == "0" && button9.Text == "0") 
     { 
      MessageBox.Show("User 2 Won"); 
     } 
     else if (button2.Text == "0" && button5.Text == "0" && button8.Text == "0") 
     { 
      MessageBox.Show("User 2 Won"); 

     } 
     else if (button1.Text == "0" && button4.Text == "0" && button7.Text == "0") 
     { 
      MessageBox.Show("User 2 Won");   
     } 
     return; 
    } 
+3

你能更具體地說明問題是什麼嗎? MessageBox的顯示比預期更頻繁嗎?不是經常需要? –

回答

1

如果不禁止定時器,它將繼續打勾,如果出現這種情況是在仍然顯示的另一個消息框,它會顯示一個又一個

您可以禁用計時器tick方法,並等待響應再次啓用它,就像這樣

timer1.Enabled = false; 
MessageBox.Show(); 
timer1.Enabled = true; 
+0

謝謝兄弟:) –

+0

@RohailAhmed不用擔心,一般情況下,您可以向上/向下投訴您認爲合適的答案,如果您的答案有助於您的解決方案,則可以將其標記爲答案(應呈灰色響應旁邊的複選標記)。如果你點擊它,你確認這是你的問題的正確答案,然後幫助那些可能和你有相同問題的未來用戶(並且我們都獲得了一些代表)。 [這裏](http://stackoverflow.com/help/accepted-answer)你可以找到更多關於它的信息(我只分享它,因爲你顯然是這個網站的新手) – Icepickle