Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Membuka Borang Baharu dengan Betul dan Menutup Borang Semasa dalam C#?

Bagaimana untuk Membuka Borang Baharu dengan Betul dan Menutup Borang Semasa dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-06 13:17:39726semak imbas

How to Properly Open a New Form and Close the Current Form in C#?

Cara Membuka Borang Baharu dan Menutup Borang Semasa dalam C#

Apabila membangunkan aplikasi C#, anda mungkin menghadapi situasi di mana anda perlu buka borang baharu daripada butang dalam borang semasa, tutup borang semasa dan fokus pada borang yang baru dibuka. Begini cara anda boleh mencapai ini:

Steve's Solution

Satu pendekatan biasa ialah menggunakan kod berikut:

private void Button1_Click(object sender, EventArgs e)
{
    var form2 = new Form2();
    form2.Show();
    this.Close();
}

Walau bagaimanapun, penyelesaian ini mempunyai kecacatan. Apabila ini.Close() dipanggil, kedua-dua borang semasa dan borang yang baru dibuka (form2) akan dilupuskan. Untuk mengelakkan ini, anda harus mempertimbangkan untuk menyembunyikan borang semasa dan bukannya menutupnya.

Penyelesaian Dibetulkan

Untuk Membuka Borang Baharu dan Menutup Borang Semasa, gunakan yang berikut kod:

private void OnButton1Click(object sender, EventArgs e)
{
    this.Hide();
    var form2 = new Form2();
    form2.Closed += (s, args) => this.Close();
    form2.Show();
}

Dalam penyelesaian yang diperbetulkan ini:

  • this.Hide() menyembunyikan borang semasa.
  • Satu kejadian Borang2 baharu (borang2) dibuat dan ditunjukkan.
  • Pengendali acara ditambahkan pada acara Tertutup borang2. Pengendali acara ini memanggil ini.Close() apabila borang2 ditutup, memastikan borang semasa ditutup hanya selepas borang baharu ditutup.

Pendekatan ini memastikan borang baharu (Borang2) dibuka. dan difokuskan, manakala borang semasa (Borang1) disembunyikan dan kemudiannya ditutup.

Atas ialah kandungan terperinci Bagaimana untuk Membuka Borang Baharu dengan Betul dan Menutup Borang Semasa dalam C#?. 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