聽起來很愚蠢,但這種情況發生在我身上。C#WinForms:執行超過預期的函數
我激活了一個函數,並且它完成了它的工作,並且在它完成後它再次啓用它自己。換句話說,該功能激活兩次,而不是一次。我試圖找出爲什麼通過調試,但我沒有找到原因。
當我點擊面板此功能激活上:
private void Play(object sender, EventArgs e)
{
Play0(MousePositionX, MousePositionY);
if (swich_player == true && AI_enabled == true)
{
AI_playing();
swich_player = false;
}
}
整個代碼是很長的。
難道我沒有正確地搜索嗎?還有其他原因嗎?爲了使這個功能重新開始,必須啓動它。我找不到什麼是再次激活功能。
任何建議,在哪裏尋找問題?或者是什麼問題?
編輯:
我終於找到了問題。有一個按鈕(button1)改變面板的屬性,第二個按鈕(按鈕2)使面板0像素寬和0像素高(以使其不可見)。第一個按鈕還添加了一個EventHandler來激活該功能。但button2不會刪除EventHandler。這樣,函數被調用的次數與按下button1的次數相同。
whhhhhhat ?!你能更好地解釋哪個函數應該由哪個函數調用?或者你想使上面的遞歸?如果你只是想多次執行一些代碼,你會不會只需要一段時間(真)? –