MDI ( Multiple Document Interface ) FORMLAR
MDI formlar icerisinde birden fazla form penceresi kullanilabilen form yapisidir. MDI formuna parent (ebeveyn) form , icerisindeki formlara ise child (cocuk) form adi verilir.
Projemize icerisindeki formlardan birini MDI Parent Form yapmak icin IsMdiContainer ozelligini True yapmaliyiz.Bunu yaptigimiz anda form asagidaki gibi gorunum alacaktir.

[IMG]http://desmond.**************/Himg39/scaled.php?server=39&filename=mdi1.png&res=medium[/IMG]
Form uzerine bir MenuStrip kontrolu ekleyerek menuler olusturulmustur.

[IMG]http://desmond.**************/Himg99/scaled.php?server=99&filename=mdi2.png&res=medium[/IMG][IMG]http://desmond.**************/Himg254/scaled.php?server=254&filename=mdi3.png&res=medium[/IMG]
Kodlar:
PHP Code:
Public Class Form1
Dim sayi As Byte
Private Sub YeniOlusturToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles YeniOlusturToolStripMenuItem.Click
Dim yeniform As New Form()
yeniform.MdiParent = Me
sayi += 1
yeniform.Text = "Form" & sayi
yeniform.Show()
End Sub
Private Sub HepsiniKapatToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HepsiniKapatToolStripMenuItem.Click
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub
Private Sub CikisToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CikisToolStripMenuItem.Click
End
End Sub
Private Sub BasamaklaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BasamaklaToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Private Sub YatayDoseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles YatayDoseToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Private Sub DikeyDoseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DikeyDoseToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
End Class
MDI formlar icerisinde birden fazla form penceresi kullanilabilen form yapisidir. MDI formuna parent (ebeveyn) form , icerisindeki formlara ise child (cocuk) form adi verilir.
Projemize icerisindeki formlardan birini MDI Parent Form yapmak icin IsMdiContainer ozelligini True yapmaliyiz.Bunu yaptigimiz anda form asagidaki gibi gorunum alacaktir.

[IMG]http://desmond.**************/Himg39/scaled.php?server=39&filename=mdi1.png&res=medium[/IMG]
Form uzerine bir MenuStrip kontrolu ekleyerek menuler olusturulmustur.

[IMG]http://desmond.**************/Himg99/scaled.php?server=99&filename=mdi2.png&res=medium[/IMG][IMG]http://desmond.**************/Himg254/scaled.php?server=254&filename=mdi3.png&res=medium[/IMG]
Kodlar:
PHP Code:
Public Class Form1
Dim sayi As Byte
Private Sub YeniOlusturToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles YeniOlusturToolStripMenuItem.Click
Dim yeniform As New Form()
yeniform.MdiParent = Me
sayi += 1
yeniform.Text = "Form" & sayi
yeniform.Show()
End Sub
Private Sub HepsiniKapatToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HepsiniKapatToolStripMenuItem.Click
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub
Private Sub CikisToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CikisToolStripMenuItem.Click
End
End Sub
Private Sub BasamaklaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BasamaklaToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Private Sub YatayDoseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles YatayDoseToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Private Sub DikeyDoseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DikeyDoseToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
End Class
Kodu Calistirarak 5 adet child form olusturalim

[IMG]http://desmond.**************/Himg7/scaled.php?server=7&filename=mdi4.png&res=medium[/IMG]
Basamakla islemi yapalim

[IMG]http://desmond.**************/Himg52/scaled.php?server=52&filename=mdi5.png&res=medium[/IMG]
Yatay Dose islemi yapalim.

[IMG]http://desmond.**************/Himg13/scaled.php?server=13&filename=mdi6.png&res=medium[/IMG]
Bir tane daha child formu ekleyerek dikey doseme islemi yapalim.

[IMG]http://desmond.**************/Himg717/scaled.php?server=717&filename=mdi7.png&res=medium[/IMG]
-----Proje Ozeti Olarak -----
Yeni bir child form'u olustururken
yeniform.MdiParent = Me

[IMG]http://desmond.**************/Himg7/scaled.php?server=7&filename=mdi4.png&res=medium[/IMG]
Basamakla islemi yapalim

[IMG]http://desmond.**************/Himg52/scaled.php?server=52&filename=mdi5.png&res=medium[/IMG]
Yatay Dose islemi yapalim.

[IMG]http://desmond.**************/Himg13/scaled.php?server=13&filename=mdi6.png&res=medium[/IMG]
Bir tane daha child formu ekleyerek dikey doseme islemi yapalim.

[IMG]http://desmond.**************/Himg717/scaled.php?server=717&filename=mdi7.png&res=medium[/IMG]
-----Proje Ozeti Olarak -----
Yeni bir child form'u olustururken
yeniform.MdiParent = Me
Olusturdugumuz child form'lari kapatmak icin
ChildForm.Close
Acik olan child formlari basamaklamak icin
MDI formun yerlesim bicimini (LayoutMdi), MdiLayout.Cascade
Acik olan child formlari yatay dosemek icin
MDI formun yerlesim bicimini (LayoutMdi), MdiLayout.TileHorizontal
Acik olan child formlari dikey dosemek icin
MDI formun yerlesim bicimini (LayoutMdi), MdiLayout.TileVertical
Not
Kodlarin bazi bolumleri Volkan Aktas'in "Visual Basic.Net 2010" kitabindan alintidir..
Calismalarinizda basarilar..__________________