ホームページ >バックエンド開発 >C++ >スタートアップフォームを閉じた後にWindowsフォームのアプリケーションを実行し続けるにはどうすればよいですか?

スタートアップフォームを閉じた後にWindowsフォームのアプリケーションを実行し続けるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-29 10:33:10223ブラウズ

How to Keep a Windows Forms Application Running After Closing the Startup Form?

開始ウィンドウが閉じたときにアプリケーションが終了するように停止します

質問:ウィンドウの処理は、アプリケーションが終了するのを防ぐためにイベントを閉じます。

複数のウィンドウがない場合、別のウィンドウ(Form2)が表示されると、開始ウィンドウ(Form1)が閉じられます。目標は、Form1を閉じた後でもアプリケーションを実行し続けることです。 回答:

問題は、メインアプリケーションスレッドのデフォルトの動作です。この問題を解決するには:

プログラムのコードを変更して、ウィンドウの閉鎖イベントを監視するために:

フォームクロースイベント処理プログラムを実装:
  1. このコードは保証されています
<code class="language-csharp">[STAThread]
static void Main() {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    var main = new Form1();
    main.FormClosed += new FormClosedEventHandler(FormClosed);
    main.Show();
    Application.Run();
}</code>
form1を閉じると、formclosedイベント処理プログラムを削除し、次の開いたウィンドウにイベントを添付します。
  1. 開いたウィンドウがもうない場合、アプリケーションは終了します。
  2. それ以外の場合、イベント処理プログラムは、すべてのウィンドウが閉じた後にのみアプリケーションが終了するように、イベントの閉鎖を引き続き監視します。
<code class="language-csharp">static void FormClosed(object sender, FormClosedEventArgs e) {
    ((Form)sender).FormClosed -= FormClosed;
    if (Application.OpenForms.Count == 0) Application.ExitThread();
    else Application.OpenForms[0].FormClosed += FormClosed;
}</code>

これらの変更により、Form1がオフになった後もアプリケーションが操作され、後続のウィンドウは期待どおりに機能し続けます。

以上がスタートアップフォームを閉じた後にWindowsフォームのアプリケーションを実行し続けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。