C# İle MDIForm Kullanımı


10 Mart 2013 Hikmet Okumuş C#

Bir anaform içerisinde bir ve birden fazla formu kontrol etmek istediğimizde kullanılacak olan yapıdır. Bu yapıya örnek olarak Excel programını gösterebiliriz. Excel ana ekran içerisinde açılan formlar ile oluşmaktadır. Birden fazla kitap açtığınızda ve ekran boyutunu küçülttüğünüzde tüm kitapların Excel' in ana ekranı içerisinde kaldığını göreceksiniz. Bizde buna benzer bir uygulama yapalım.
MDIForm yaparken bilinmesi gereken en önemli detay sadece bir tane MDIForm olabileceğidir. MDIForm altında ise birden fazla Child form olabilir. Bir formu MDIForm yapmak için formun IsMdiContainer değerini true olarak setlemek gerekmektedir. Bu ayarlama ile MDIForm' unu belirlemiş olduk. Şimdi Child formlar oluşturalım.
Normalde bir form açarken aşağıdaki gibi bir kod yazmak yeterlidir.
		        private void button1_Click(object sender, EventArgs e)
		        {
		            Form ChildForm = new Form();
		            ChildForm.Show();
		        }
		
MDIForm içerisinden bu şekilde yeni bir form çağırdığımızda form normal olarak açılacaktır. Yani MDIForm' dan bağımsız açılacaktır. Eğer yeni açılacak olan formu MDIForm' un Child formu olarak açmak istersek aşağıdaki gibi yazmamız gerekmektedir.
		        private void button1_Click(object sender, EventArgs e)
		        {
		            Form ChildForm = new Form();
		            ChildForm.MdiParent = this;
		            ChildForm.Show();
		        }
		
MdiParent özelliği ile açılacak olan form hangi formun Child formu olacaktır sorusuna cevap verilmektedir. This kelimesi ile içerisinden çağrılan form yeni formun MDIForm' u olarak atanmaktadır. Ve bu şekilde yeni form Chil form olarak açılacaktır.
Son olarak açılan Child formların MDIForm üzerindeki yerleşim yerlerini inceleyelim. MDIFormda birden fazla form açık olduğunda tüm formları otomatik sıralamak için aşağıdaki özellikler kullanılmaktadır.
this.LayoutMdi(MdiLayout.Cascade) : Pencereleri basamaklanmış şekilde göstermek için kullanılmaktadır.
this.LayoutMdi(MdiLayout.TileHorizontal) : Pencereleri yatay olarak sıralamak için kullanılmaktadır.
this.LayoutMdi(MdiLayout.TileVertical) : Pencereleri dikey olarak sıralamak için kullanılmaktadır.
MDIForm kullanımı bu şekilde olmaktadır.

Başarılar dilerim.



Yorum Ekle