2013-06-19 46 views
0

我需要幫助停止此循環不斷循環,我需要它給用戶時間來選擇它打開的新形式的東西,但目前它只是打開他們的整個負荷,並沒有停止。需要雖然循環暫停,以允許用戶按c中的按鈕#

while (Convert.ToInt32(PlayerHP[PlayerNo]) > 0 && Convert.ToInt32(PlayerHP[PlayerNo+1]) > 0){ 
    ChooseAttack(); 
    PlayerHP[PlayerNo+1] = (Convert.ToInt32(PlayerHP[PlayerNo+1]) - Damage()).ToString(); 
    lblHPP1.Text = PlayerHP[0]; 
    lblHPP2.Text = PlayerHP[1]; 
    PlayerNo = ((PlayerNo+1)%2); 
    Application.DoEvents(); 
} 

我一直在試驗「Application.DoEvents()」這一行,但是無論我放置它什麼都不做。

+0

爲什麼不使用事件驅動方法? – Vlad

回答

2

我沒有看到任何地方的形式,但預計在ChooseAttack();的某個地方打電話給你有一些代碼,看起來像這樣:

frmChoose.Show(); 

和所有你需要做的就是它改成這樣:

frmChoose.ShowDialog(); 
0

我會推出循環到一個計時器線程,所以你可以控制外部的「循環」。循環運行的速度將是計時器的超時時間。

爲了更清楚起見,您不再有'while'語句,更多的if在計時器的回調方法的頂部以檢查您的條件。它的實際循環部分將由定時器執行反覆處理。

根據您選擇的計時器,當您單擊表單上的按鈕時,您只需說Timer.Enabled = false;或類似的東西。