Tugas Pemrograman Visual Pertemuan 7 (Form, Menu, MdiForm)

Pada pertemuan ke-7 ini, saya akan memposting pembuatan form dengan form induk, form anak, beserta menunya. Duh apa lagi itu?

Intinya, form induk itu adalah form utama untuk menampung form-form yang bila dipanggil framenya tidak keluar dari form induk, misal seperti editing foto di Photoshop yang tiap file foto yang dibuka dikelompokkan dalam tab-tab tersendiri yang sebenarnya adalah form anak.

Cara membuatnya :

1.Buat sebuah form utama dan susun seperti ini :

forminduk



Pada Properties untuk form ini, atur saja Name=fawal, Text= Form Awal, isMdiContainer = True, dan lain-lainnya terserah sesuai selera. IsMdiContainer dibuat true agar dia berubah menjadi form induk, penampung form anak yang kan dibuat di no. selanjutnya.


  1. Buat form anak, isi tiap form bebas. Saya membuat ada 6 form anak dengan rincian 3 untuk ditampilkan dengan cara .Show() artinya kita bisa membuka lebih dari 1 form anak sekaligus tanpa harus menutupnya, dan 3 lagi untuk .ShowDialog(), yang cara menampilkannya memang seperti kotak dialog. Form harus ditutup dulu jika ingin membuka form lain.

  2. Sekarang kita berkutat di MenuStrip. Cukup drag n drop saja MenuStrip dari kategori Menus&Toolbars dan atur seperti ini :



<

p>menunya

Jendela : Penataan (Submenu : Susun vertikal, susun horizontal, Susun Cascade) dan Tutup Semua

Bantuan : Tentang


  1. ContextMenu, saya hanya bikin 1 saja dan letaknya di form induk, diakses dengan  klik kanan pada area kosong saat kita belum memanggil form apapun.



context

Rinciannya : Tampilkan (Submenunya : Menu dan Tab Menu), Sembunyikan (Submenunya : Menu dan Tab Menu), dan Docking (Submenu : Menu -> Atas, Bawah,Kanan,Kiri + Tab Menu - >Kanan , Kiri)

Agar ContextMenuStrip dapat ditampilkan, pada Properties Form utama cari "ContextMenuStrip", ganti none dengan ContextMenuStrip1.

4.Untuk TabControl, saya membuat 2 TabPage. 1 untuk Form Latihan, karena hanya form latihan saja yang memungkinkan dibuka banyak secara bersamaan dan tab lain untuk mengatur layout MdiChild.

5.Kode program diuraikan di bawah ini.

Public Class fawal

''=================================================================================================
''ini untuk mengatur menu strip
Private Sub CobaForm1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaForm1ToolStripMenuItem.Click
form_lat1.MdiParent = Me
form_lat1.Show()

End Sub

Private Sub Latihan3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Latihan3ToolStripMenuItem.Click
form_lat3.MdiParent = Me
form_lat3.Show()
End Sub

Private Sub CobaTugas1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaTugas1ToolStripMenuItem.Click
form_tgs1.ShowDialog()
End Sub

Private Sub CobaTugas2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaTugas2ToolStripMenuItem.Click
form_tgs2.ShowDialog()
End Sub

Private Sub Tugas3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tugas3ToolStripMenuItem.Click
form_tgs3.ShowDialog()

End Sub
''========== exit====================
Private Sub KeluarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeluarToolStripMenuItem.Click

If MsgBox("Apakah yakin akan keluar ?", vbQuestion + vbYesNo + vbDefaultButton2, "Konfirmasi") = vbYes Then
Me.Close()

End If

End Sub

''============tentang====================
Private Sub TentangToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TentangToolStripMenuItem.Click

MsgBox("Tugas Pertemuan 7" & vbCrLf & "Oleh Ipung N. / 11.11.2328 ", vbInformation, "Tentang")

End Sub

Private Sub SusunVertikalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SusunVertikalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub

Private Sub SusunHorizontalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SusunHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Private Sub TumpukToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TumpukToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub

''==========================================================================================
''ini untuk mengatur konteks menu

Private Sub MenuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolStripMenuItem.Click
strip_menu.Visible = True

End Sub

Private Sub TabKananToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabKananToolStripMenuItem.Click
tab_right.Visible = True
End Sub

Private Sub MenuToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuToolStripMenuItem1.Click
strip_menu.Visible = False

End Sub

Private Sub TabKananToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabKananToolStripMenuItem1.Click
tab_right.Visible = False
End Sub

''====================================================================================
''ini untuk mengatur checkbox di tabgroup dan membuka form anak

Private Sub chk_lat1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_lat1.CheckedChanged
If chk_lat1.Checked = True Then
form_lat1.MdiParent = Me
form_lat1.Show()
Else
form_lat1.MdiParent = Me
form_lat1.Dispose()
End If
''================== [ cek bila form latihan 1 sudah terbuka ] ===========================
If form_lat1.Visible Then
chk_lat1.Checked = True
Else
chk_lat1.Checked = False
End If

End Sub

Private Sub chk_lat2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_lat2.CheckedChanged
If chk_lat2.Checked = True Then
form_lat2.MdiParent = Me
form_lat2.Show()
Else
form_lat2.MdiParent = Me
form_lat2.Dispose()
End If

''================== [ cek bila form latihan 2 sudah terbuka ] ===========================
If form_lat2.Visible = True Then
chk_lat2.Checked = True
Else
chk_lat2.Checked = False
End If

End Sub

Private Sub chk_lat3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chk_lat3.CheckedChanged
If chk_lat3.Checked = True Then
form_lat3.MdiParent = Me
form_lat3.Show()
Else
form_lat3.MdiParent = Me
form_lat3.Dispose()
End If

''================== [ cek bila form latihan 3 sudah terbuka ] ===========================
If form_lat3.Visible = True Then
chk_lat3.Checked = True
Else
chk_lat3.Checked = False
End If

End Sub

''================================================================================================
''tutup semua form
Private Sub TutupToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TutupToolStripMenuItem.Click
For Each child In Me.MdiChildren
child.Close()
Next
End Sub

''===============================================================================================
''penataan via tab
Private Sub bt_vert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_vert.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub

Private Sub bt_hori_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_hori.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub

Private Sub radio_tgs1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles swt_lat1.CheckedChanged
If swt_lat1.Checked = True Then
form_lat1.MdiParent = Me
form_lat1.Visible = True
form_lat1.Dock = DockStyle.Top
ElseIf Not swt_lat1.Checked = True Then
form_lat1.Dispose()

End If

End Sub

Private Sub rad_tgs2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles swt_lat2.CheckedChanged
If swt_lat2.Checked = True Then
form_lat2.MdiParent = Me
form_lat2.Visible = True
form_lat2.Dock = DockStyle.Top
ElseIf Not swt_lat2.Checked = True Then
form_lat2.Dispose()
End If
End Sub

Private Sub rad_tgs3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles swt_lat3.CheckedChanged
If swt_lat3.Checked = True Then
form_lat3.MdiParent = Me
form_lat3.Visible = True
form_lat3.Dock = DockStyle.Top
ElseIf Not swt_lat3.Checked = True Then
form_lat3.Dispose()

End If
End Sub

''=================== [ close form ]=======================
Private Sub ex_lat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ex_lat.Click
For Each ex In Me.MdiChildren
ex.Close()
Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For Each ex2 In Me.MdiChildren
ex2.Close()
Next
End Sub

''================== [ docking ] ====================
Private Sub AtasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_atas.Click
strip_menu.Dock = DockStyle.Top

End Sub

Private Sub BawahToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_bawah.Click
strip_menu.Dock = DockStyle.Bottom
End Sub

Private Sub KananToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_kanan.Click
strip_menu.Dock = DockStyle.Right
End Sub

Private Sub dock_kiri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dock_kiri.Click
strip_menu.Dock = DockStyle.Left
End Sub

Private Sub KananToolStripMenuItem_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KananToolStripMenuItem.Click
tab_right.Dock = DockStyle.Right
End Sub

Private Sub KiriToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KiriToolStripMenuItem.Click
tab_right.Dock = DockStyle.Left

End Sub

Private Sub CobaForm2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CobaForm2ToolStripMenuItem.Click
form_lat2.MdiParent = Me
form_lat2.Show()

End Sub
End Class

Hasil debug :lat

Contoh penataan form dengan tile horizontal :

penataan

Sembunyikan menu dengan klik kanan, context menu :

contextbelum

Hasilnya :

contextsudah

Sekian postingan saya. Jika ada kesalahan koding mohon berikan laporan. Terima kasih.

Komentar