Pada Visual Basic, kita dapat mengembangkan aplikasi dengan interface sebagai berikut :
- SDI (Single Document Interface)
- MDI (Multiple Document Interface)
Pada aplikasi SDI, setiap form merupakan form-form yang berdiri sendiri, Aplikasi SDI pada windows terdapat pada aplikasi seperti Notepad, WordPad dan Paint.
Sedangkan aplikasi seperti Microsoft Word menggunakan MDI, MDIForm digunakan untuk membuat program aplikasi yang berbentuk Multiple Document Interfaces. Sebuah MDIForm disebut juga container yang bisa terdiri atas beberapa buah form lain yang biasa disebut MDIChild.
Ada beberapa hal yang harus diperhatikan dalam penggunaan MDIForm adalah :
- Didalam satu project hanya dapat terdiri dari satu MDIForm
- Anda tidak dapat menempatkan kontrol-kontrol secara langsung pada MDIForm, kecuali kontrol yang memiliki properties Alignment, atau menempatkannya diatas kontainer seperti Picturebox.
- Anda tidak dapat menggunakan metode pengambaran (Print, Line, Circle, dan PSet) seperti pada form umumnya.
Karakteristik dari MDI Form
- Semua child form tidak dapat dipindahkan keluar dari MDI Form.
- Ketika suatu child form diminimize, akan menjadi icon dibawah MDI Form.
- Anda dapat menentukan apakah child form secara otomatis ditampilkan atau tidak dengan menggunakan properties AutoShowChildren pada MDIForm.
- Jika pada child form ada menu, maka menu akan ditampilkan pada MDIform menu.
Pada MDIform kita tidak dapat menempatkan kontrol-kontrol visible yang tidak mendukung alignment, kecuali kalau anda menempatkannya kedalam suatu kontainer seperti Picturebox, dan Toolbar. Sedangkan kontrol non-visible seperti Timer dan CommonDialog box dapat ditempatkan diatas MDIForm.
Paparan MDI pada Visual Basic
- Membuat suatu MDI form
Sebuah MDIForm dapat dibuat dari sebuah Form biasa, Yaitu dengan cara mengatur properties IsMdiContainer pada Form tersebut diubah menjadi True
Pada gambar diatas, sebuah Form bernama Form1 diatur menjadi suatu MDIForm dengan cara mengubah isi properties IsMDIContainer-nya menjadi True
- Membuat suatu Form menjadi MDI Child
Sebuah Form dapat diatur menjadi MDIChild bagi sebuah MDIForm melalui coding program. Aturan penulisannya sebagai berikut
<NamaForm>.MDIParent = <namaMDIForm>
Contoh :
Form2.MdiParent = Form1
Pada contoh coding program diatas, sebuah Form bernama Form2 diatur agar menjadi MDIChild bagi sebuah MDIForm bernama Form1
- Mengatur MDIChild dalam jendela MDIForm
Kita dapat mengatur layout penyusunan form-form yang sedang aktif didalam suatu MDI form menjadi cascade(bertimpa) atau tile(membentang). Metode LayoutMDI ini diikuti oleh parameter yang menentukan jenis penyusunan yang dilakukan, contoh :
Cascade
Me.LayoutMdi(MdiLayout.Cascade)
Me.LayoutMdi(MdiLayout.Cascade)
Tile Horizontal
Me.LayoutMdi(MdiLayout.TileHorizontal)
Me.LayoutMdi(MdiLayout.TileHorizontal)
Tile Vertical
Me.LayoutMdi(MdiLayout.TileVertical)
Sekarang kita akan mencoba membuat project aplikasi MDI sederhana dengan ditambahkan menu pulldown dan menu treeview.
Langkah-langkahnya
1. 1. Buat project aplikasi Windows Form baru.
2. 2.Atur Properties Form baru seperti berikut :
(Name) | MDIForm |
Text | MDIForm |
3. 3. Tambahkan komponen treeview, dan atur properties dock nya menjadi left.
4. Kemudian tambah beberapa node sehingga seperti schema dibawah ini,
5. Edit Properties dari node-node tersebut sebagai parent node itu Child dan File, untuk child node dari Child tambahkan Child1 dan Child2, dan untuk child node dari File tambahkan New Form dan Exit
Node0 | Name | Child |
Text | Child | |
Node1 | Name | Child1 |
Text | Child1 | |
Node2 | Name | Child2 |
Text | Child2 | |
Node3 | Name | File |
Text | File | |
Node4 | Name | New |
Text | New Form | |
Node5 | Name | Exit |
Text | Exit |
6. Tambahkan MenuStrip untuk pulldown menu tambahkan &Windows sebagai parent dan childnya adalah Cascade, Tile Horizontal, Tile Vertical dan Close All.
7. Ubah juga properties IsMDIContainer pada MDIForm menjadi True,
8. Hasilnya Design kita akan seperti
9. Selanjutnya kita tambahkan 2 buah Form baru dengan nama Child1.vb dan Child2.vb
10l.
Setelah semua selesai tambahkan coding pada TreeView pada event handle DoubleClick
' Mendeklarasi nomorform sebagai private supaya bisa ditambah
Private nomorform As Integer = 0
Private Sub TreeView1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView1.DoubleClick
Select Case TreeView1.SelectedNode.Name
Case "Child1"
' Mensetting menjadi Child pada sebuah MDIform sebelum ditampilkan
Child1.MdiParent = Me
' Menampilkan form
Child1.Show()
Case "Child2"
' Mensetting menjadi Child pada sebuah MDIform sebelum ditampilkan
child2.MdiParent = Me
' Menampilkan form
child2.Show()
Case "New"
' Membuat New Child Form Baru
Dim ChildForm As New System.Windows.Forms.Form
' Mensetting menjadi Child pada sebuah MDIform sebelum ditampilkan
ChildForm.MdiParent = Me
' Memberi nomor pada text/title form baru
nomorform += 1
ChildForm.Text = "New Form " & nomorform
' Menampilkan form
ChildForm.Show()
Case "Exit"
End
End Select
End Sub
Selanjutnya tambahkan coding untuk MenuStrip buat pengaturan Layout MDIChild
Private Sub CascadeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CascadeToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TileHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Private Sub TileVerticalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TileVerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseAllToolStripMenuItem.Click
' Close semua child yang berada di MDIForm
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub
Kemudian debug (F5) untuk menjalankan program yang telah kita buat,
Selesai.