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
Lepaskan: 2025-01-29 10:16:09
asal
495 orang telah melayarinya

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

    [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
        }
    }
Salin selepas log masuk
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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan