C# MDI Form ve Menu Strip kullanımı (Form içinde form)

Merhaba, C# uygulamalarında MDI form uygulaması ile ilgili bir örnek vereceğim. Kendimin de sıkça kullandığı bu yöntem ile formlarınıza güzel estetik bir görüntü katabilirsiniz. Normal windows uygulamalarında bulunan Dosya,Düzen,Yardım gibi menülerin bulunduğu menu strip elemanlarına tıklandığı zaman yine o form içinde yeni formların açılmasını istiyorsak MDI form tam bizim için biçilmiş kaftan.

İlk önce ana formumuz olan formu dosyamıza ekliyoruz. Formu MDI formların ana formu olarak tanıtabilmemiz için Form properties'lerine gelip IsMdiContainer seçeneğini True yapmamız gerekmektedir.

 

Bu hareketimizden sonra  formumuzun arkaplan renginin koyu gri olduğunu farkederiz. MDI formlar ile beraber mdi yavrusu olarak ayarladığımız formlar sadece o formun içerisinde kalabileceğinden dağınıklığı önleyecek ve işimizi kolaylaştıracaktır.

 

 

Bizim yapacağımız MDI Form aracılığı ile sayfamıza üst menüler ekleyeceğiz ve bu üst menülerden herhangi birine tıklandığında direkt sayfamızın içinde yeni formumuzun gelişini sağlayacağız.

Bunun için Toolbox kısmından bir menu strip ekliyoruz formumuza. Menustrip ekledikten sonra üst kısımda bir şerit geldiğini farkedersiniz. Bu şeridi tıkladığımızda bize eleman eklenecek alanları geldiğini görürüz. Alanlarımıza aşağıdaki resimdeki gibi istediğimiz yazıları yazarak sonraki aşamaya geçiyoruz.



Şimdi kod kısmına gelerek altyapımızı hazırlamaya başlayalım. İlk olarak bir method oluşturacağız.
 

void yavruform(Form yavru)
{
bool durum = false;
foreach (Form eleman in this.MdiChildren)
{
if (eleman.Text == yavru.Text)
{
durum = true;
eleman.Activate();
}
else
{
eleman.Close();
}
}
if (durum == false)
{
yavru.MdiParent = this;
yavru.Show();
}
}

Bu kod sayesinde hem mdi formumuzu açıyoruz yeni sayfada hem de açık form var ise kapatıyoruz. Şimdi oluşturduğumuz menü elemanlarından birini çift tıklıyoruz. Sonra sistemimize bir form daha ekliyoruz. Formumuzun adı Form2 olsun. Form 1 (ana formumuz) da menü öğesinin click koduna aşağıdaki kodu yazarak sistemimizde mdi formumuzu oluşturmuş oluyoruz. 

Form2 fab = new Form2();
yavruform(fab)

Bu şekilde formumuzu ana formumuzun içerisinde açmış olduk. Açılan yeni form tutulup sağa sola sürüklenebildiğinden başka bir çözüm bulmamız gerekli. Bu yüzden Formun properties sekmesine gelip FormBorderStyle properties'ini none yapıyoruz. Location 0;0 ve StartPosition Manuel yapılırsa formumuz istediğimiz seviyeye gelecektir.


 

13078

(3) Yorum

Murat bey merhaba, Mdi yapısında oluşturulan bir yavru formum var. Bu formda bir textbox alanım var. yavru formda butona bastığımda bir showdialogla liste getiriyorum. seçtiğim bu listeden değeri yavru formdaki textboxuma aktarmak istiyorum fakat , showdialog formumdan yavru formdaki elemanlara erişemiyorum. Bunun için nasıl bir yöntem izlemem gerekiyor.

01/01/2015 00:00Cevapla

Hocam Merhabalar, rica etsem Form eleman in this.MdiChildren kısmını biraz daha açıklayabilir misiniz ?

01/01/2015 00:00Cevapla

Merhaba Murat Bey, orada yapılan işlem ile bir mdi form açılırken açık olan başka bir form varsa o kapatılıyor. Bu sayede aynı anda onlarca form açık olması gibi sistemi kasacak sıkıntılardan arınabiliyorsunuz.

01/01/2015 00:00Cevapla

Yorumlar