Bagikan melalui


Cara: Membuat form anak MDI

Form anak MDI adalah elemen penting dari aplikasi Multiple-Document Interface (MDI), karena form-form ini adalah pusat interaksi pengguna.

Dalam prosedur berikut, Anda akan menggunakan Visual Studio untuk membuat formulir anak MDI yang menampilkan kontrol RichTextBox, mirip dengan sebagian besar aplikasi pemrosesan kata. Dengan mengganti kontrol System.Windows.Forms dengan kontrol lain, seperti kontrol DataGridView, atau campuran kontrol, Anda dapat membuat jendela anak MDI (dan, berdasarkan ekstensi, aplikasi MDI) dengan berbagai kemungkinan.

Membuat formulir anak MDI

  1. Buat proyek aplikasi Windows Forms baru di Visual Studio. Di jendela Properti untuk formulir, atur propertinya IsMdiContainer ke true dan propertinya WindowsState ke Maximized.

    Ini menunjuk formulir sebagai kontainer MDI untuk jendela anak.

  2. Dari Toolbox, seret kontrol MenuStrip ke formulir. Atur properti Text ke File .

  3. Klik elipsis (...) di samping properti Item , dan klik Tambahkan untuk menambahkan dua item menu strip alat anak. Atur properti Text untuk item ini ke Baru dan jendela .

  4. Di Penjelajah Solusi, klik kanan pada proyek, lalu pilih Tambahkan>Item Baru.

  5. Dalam kotak dialog Tambahkan Item Baru, pilih Formulir Windows (di Visual Basic atau di Visual C#) atau Aplikasi Windows Forms (.NET) (di Visual C++) dari panel Templat . Dalam kotak Nama , beri nama formulir Formulir2. Pilih Buka untuk menambahkan formulir ke proyek.

    Nota

    Formulir anak MDI yang Anda buat dalam langkah ini adalah Formulir Windows standar. Dengan demikian, ia memiliki properti Opacity, yang memungkinkan Anda mengontrol transparansi formulir. Namun, properti Opacity dirancang untuk jendela tingkat atas. Jangan gunakan dengan bentuk anak MDI, karena masalah lukisan dapat terjadi.

    Formulir ini akan menjadi templat untuk formulir anak MDI Anda.

    Windows Forms Designer terbuka, menampilkan Form2.

  6. Dari kotak Alat , seret kontrol RichTextBox ke formulir.

  7. Di jendela Properti, atur properti Anchor ke Atas, Kiri dan Dock ke Isi.

    Hal ini menyebabkan kontrol RichTextBox mengisi seluruhnya area formulir anak MDI, bahkan ketika formulir diubah ukurannya.

  8. Klik dua kali item menu New untuk membuat penanganan aktivitas Click untuk item tersebut.

  9. Sisipkan kode yang mirip dengan berikut ini untuk membuat formulir anak MDI baru saat pengguna mengklik item menu Baru.

    Nota

    Dalam contoh berikut, pengendali acara menangani peristiwa Click untuk MenuItem2. Ketahuilah bahwa, tergantung pada spesifikasi arsitektur aplikasi Anda, item menu New Anda mungkin tidak MenuItem2.

    Protected Sub MDIChildNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
       Dim NewMDIChild As New Form2()
       'Set the Parent Form of the Child window.
       NewMDIChild.MdiParent = Me
       'Display the new form.
       NewMDIChild.Show()
    End Sub
    
    protected void MDIChildNew_Click(object sender, System.EventArgs e){
       Form2 newMDIChild = new Form2();
       // Set the Parent Form of the Child window.
       newMDIChild.MdiParent = this;
       // Display the new form.
       newMDIChild.Show();
    }
    
    private:
       void menuItem2_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          Form2^ newMDIChild = gcnew Form2();
          // Set the Parent Form of the Child window.
          newMDIChild->MdiParent = this;
          // Display the new form.
          newMDIChild->Show();
       }
    

    Di C++, tambahkan direktif #include berikut di bagian atas Form1.h:

    #include "Form2.h"
    
  10. Di daftar drop-down di bagian atas jendela Properti, pilih strip menu yang sesuai dengan strip menu File dan atur properti MdiWindowListItem ke Window ToolStripMenuItem.

    Ini memungkinkan menu Jendela untuk mempertahankan daftar jendela anak MDI yang terbuka dengan tanda centang di samping jendela anak aktif.

  11. Tekan F5 untuk menjalankan aplikasi. Dengan memilih Baru dari menu File, Anda dapat membuat formulir anak MDI baru, yang dilacak di item menu Jendela.

    Nota

    Ketika formulir anak MDI memiliki komponen MainMenu (dengan, biasanya, struktur menu item menu) dan dibuka dalam formulir induk MDI yang memiliki komponen MainMenu (dengan, biasanya, struktur menu item menu), item menu akan digabungkan secara otomatis jika Anda telah mengatur properti MergeType (dan secara opsional, properti MergeOrder). Atur properti MergeType dari kedua komponen MainMenu dan semua item menu dari form anak ke MergeItems. Selain itu, atur properti MergeOrder sehingga item menu dari kedua menu muncul dalam urutan yang diinginkan. Selain itu, perlu diingat bahwa ketika Anda menutup formulir induk MDI, setiap formulir anak MDI memicu peristiwa Closing sebelum peristiwa Closing untuk formulir induk MDI diterbitkan. Membatalkan peristiwa Closing anak MDI tidak akan mencegah peristiwa Closing induk MDI dinaikkan; namun, argumen CancelEventArgs untuk peristiwa Closing induk MDI sekarang akan diatur ke true. Anda dapat memaksa induk MDI dan semua formulir turunan MDI untuk ditutup dengan mengatur argumen CancelEventArgs ke false.

Lihat juga