2012-05-30 118 views
0

當我點擊一個按鈕,然後運行附加到它自己的整個方法,我想按鈕來重置整個內容。所以,如果我使用Application.Restart();它只會重新啓動應用程序,但不運行其餘的。我將如何解決這個問題? 我想重新啓動應用程序的原因是有很多變量,我想重置所有這些變量。 這個重置過程必須通過點擊一個特定的按鈕來完成。但是,該按鈕具有許多功能,可以在此方法的任何位置運行Application.Restart();方法。 導致此方法無法執行。 所以基本上我想這個方法重新啓動所有變量,然後運行其餘的(從enableButtons();開始)如何在不退出和重新加載的情況下重新啓動應用程序?

private void puzzleToolStripMenuItem_Click(object sender, EventArgs e) { 
     Application.Restart(); 
     enableButtons(); 
     puzzleDataMethod(); 
     MessageBox.Show... 
+1

請解釋爲何重新啓動應用程序? – Reniuz

+0

更好地解釋一下,「當我點擊一個按鈕,然後運行整個方法附加到它自己」時,你的意思是什麼 – Shai

+0

@Renuiz和Shai解釋了更多 –

回答

1

您應該所有的變量移動到一個容器中。 當應用程序需要重新啓動時,您將重新初始化它。

+0

我不能這樣做,因爲這是應用程序需要根據給我的UML設計完成的。 –

+1

如果您因任何原因無法執行此操作。您應該手動重置所有變量。我確信應用程序是一個更危險的方法,然後繞過UML設計。 –

+0

爲什麼不建議在存在潛在缺陷或增強功能時適應設計...? –

0

你不能這樣做。您的唯一行動方法是在重新啓動後堅持將您想要帶回的任何狀態保存到磁盤中,並確保Application.Restart()是您方法中的最後一次調用。

這可能與在隔離存儲中設置文件中的真/假標誌一樣簡單,該標誌告訴您的應用程序的新實例它是由於重新啓動而啓動的,因此它可以運行您當前正在嘗試的那些命令在您致電Application.Restart()後運行。

相關問題