1

アプリ起動時

public form1()
{
    InitializeComponent();
    dirPath1 = ConfigurationManager.AppSettings["path1"];
    dirPathath2 = ConfigurationManager.AppSettings["path2"];
    if ((!Directory.Exists(dirPath1)) && (!Directory.Exists(dirPath2)))
    {
        this.Close();              
        Application.Run(new form2());
    }

    //rest of code
}

Form2のキャンセルボタンをクリック

private void btnCancel_Click(object sender, EventArgs e)
{
    Application.Exit();            
}

私によると、アプリケーションは今停止する必要があります。しかし、それが行うことは、form1 コンストラクターで「残りのコード」部分を実行し続けることです。

4

2 に答える 2

0

コードでスレッドの使用を示していませんが、スレッドが含まれていると仮定しましょう。すべてのスレッドを閉じるには、開始する前にすべてのスレッドをバックグラウンド スレッドに設定する必要があります。こうすると、アプリケーションの終了時に自動的に閉じられます。例:

Thread myThread = new Thread(...);
myThread.IsBackground = true; // <-- Set your thread to background
myThread.Start(...);

次に試してみてください

 Application.Exit(); 
于 2013-09-06T08:18:28.290 に答える