Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengekalkan aplikasi saya selepas menutup borang permulaan?

Bagaimanakah saya dapat mengekalkan aplikasi saya selepas menutup borang permulaan?

Susan Sarandon
Susan Sarandonasal
2025-01-29 10:16:09399semak imbas

How Can I Keep My Application Running After Closing the Startup Form?

menjaga aplikasi anda aktif selepas menutup borang permulaan

Anda mungkin menghadapi masalah di mana menutup borang awal (Form1) juga menamatkan keseluruhan permohonan, walaupun bentuk lain (seperti Form2) dibuka. Ini kerana kitaran hayat aplikasi terikat dengan bentuk utama.

hanya menyembunyikan Form1 dan bukannya menutupnya memastikan aplikasi berjalan, tetapi memperkenalkan masalah: Aplikasi tidak akan ditutup dengan anggun apabila Form2 ditutup.

Penyelesaiannya terletak pada mengubah kod

, yang mengawal tingkah laku penutupan aplikasi. Inilah kod yang diselaraskan untuk memastikan aplikasi berjalan selepas borang awal ditutup: Program.cs

<code class="language-csharp">    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1 main = new Form1();
        main.FormClosed += FormClosed;
        main.Show();
        Application.Run();
    }

    static void FormClosed(object sender, FormClosedEventArgs e) {
        ((Form)sender).FormClosed -= FormClosed; //Detach event handler
        if (Application.OpenForms.Count == 0) {
            Application.ExitThread(); // Exit only when all forms are closed
        } else {
            Application.OpenForms[0].FormClosed += FormClosed; // Attach to the next open form
        }
    }</code>
Kod yang lebih baik ini adalah yang berikut:

  • pengendalian acara: pengendali acara dilampirkan pada bentuk awal (Form1). FormClosed
  • Borang Pemantauan Penutupan: Ia memeriksa jika ada borang yang masih dibuka selepas borang ditutup.
  • Shutdown anggun: Jika tiada borang kekal (), Application.OpenForms.Count == 0 dengan anggun menutup permohonan. Application.ExitThread()
  • pengendali acara reattachment: Jika bentuk lain dibuka, pengendali acara dilampirkan pada borang terbuka seterusnya, memastikan pemantauan yang berterusan. FormClosed
  • Pendekatan ini membolehkan Form2 tetap terbuka selepas penutupan Form1, dan aplikasi hanya akan ditamatkan apabila semua borang ditutup.

Atas ialah kandungan terperinci Bagaimanakah saya dapat mengekalkan aplikasi saya selepas menutup borang permulaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn