Application.Restart() を使用したかのようにすべての内部コードを動作させるにはどうすればよいですか?ただし、実際にプログラムを閉じて再度開く必要はありません。
質問する
10141 次
1 に答える
6
アプリケーションの設計によっては、メイン フォームの新しいインスタンスを開始し、既存のフォーム インスタンスを閉じるだけの簡単な場合もあります。フォーム変数以外のアプリケーションの状態もリセットする必要があります。あなたが探しているように聞こえるような、アプリケーション用の魔法の「リセット」ボタンはありません。
Program.cs
1 つの方法は、「リセット」後にフォームが閉じられた場合にアプリを実行し続けるループを追加することです。
static class Program
{
public static bool KeepRunning { get; set; }
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
KeepRunning = true;
while(KeepRunning)
{
KeepRunning = false;
Application.Run(new Form1());
}
}
}
フォーム(またはツールバーなど)でKeepRunning
変数をtrue
次のように設定します。
private void btnClose_Click(object sender, EventArgs e)
{
// close the form and let the app die
this.Close();
}
private void btnReset_Click(object sender, EventArgs e)
{
// close the form but keep the app running
Program.KeepRunning = true;
this.Close();
}
于 2012-11-01T18:58:21.590 に答える