Form içinde alt form açmak


Deprecated: Function create_function() is deprecated in /var/www/vhosts/digitaldunyam.net/coder.digitaldunyam.net/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

Bazen birden fazla form ile çalışmak isteye biliriz. Böyle durumlarda düz mantıkla projemizde çalışacağımız kadar form oluştururuz. Bunu birkaç form ile halledebiliriz. Ancak iş kullanıcının istediği doğrultusunda açılması gerek form olduğunda yapışıp kalabiliriz. Bunu önlemek için yardımımıza MDI formlar koşuyor.

MDI form mantığını Excel için örnek verebiliriz. Biliyorsunuz ki Excel içinde birden fazla excel dosyası açıp çalışabilmek deyiz. Adobe Photoshop programını da örnek göstere biliriz. İki ayrı resim ile çalışıldığında Photoshop içinde iki ayrı çalışma sayfası açılır onları istediğimiz yere Photoshop içinde hareket ettirebiliyoruz.

Örnekleri ve hikayeyi fazla uzatmadan MDI, form içinde form açma uygulamasına geçelim. Öncelikle bir tane ana form oluşturalım. Bunun için formun IsMdiContainer özelliğini True olarak ayarlayın.(Resimdeki gibi form arkaplan gri renkte olacak)

Form içinde alt form açmak için anaforma bir adet menü oluşturmamız gerekecek. Toolbox daki MenuStrip kontrolünü sürükleyip bırakarak oluşturabiliriz. Menü otomatik en üste çıkacak, özellikler bölümünden konumunu ayarlaya bilirsiniz. Üzerine tıklayarak menü isimlerini basit bir şekilde oluşturun.

Örneğe uygun olarak resimdeki gibi oluşturabilirsiniz. Ardından açılacak olan alt form için yeni windows form ekleyin. Formun IsMdiContainer özelliğini False olarak bırakıp, Name özelliğini altform olarak yazarsanız örneğimizdeki kodları daha iyi anlayabilirsiniz.

Çalışır vaziyetteki örneğimiz

Bunları yaptıktan sonra kod kısmına geçebiliriz. İlk önce yeni alt form oluşturmak için Yeni Form Aç menümüze çift tıklayıp Click olayına alttaki kodları yazalım.

1
2
3
4
5
6
7
8
9
10
11
12
int formsayim = 1;  // formsayim değişkenini global olarak tanımlayın !

 int formno= formsayim++;

            altform cocuk = new altform();

            cocuk.Name = "cocukform" + formno.ToString();
            cocuk.Text= "Yeni Alt Form " + formno.ToString();

            cocuk.MdiParent = this;

            cocuk.Show();

Açılan her yeni form için form numarasını 1 arttırarak yeni çocuk formun name özelliğine atadık. Sırası ile kapat menüsüne çift tıklayıp Clik olayına alttaki kodları yazalım

1
2
3
4
5
 if (this.ActiveMdiChild != null)
            {
                Form frm = ActiveMdiChild;
                frm.Close();
            }

Buradaki kod açılı form varsa en onu kapatır. Son olarak hepsini kapat menüsüne de çift tıklayıp Clik olayına alttaki kodları yazalım.

1
2
3
4
foreach (Form frm in this.MdiChildren)
            {
                frm.Close();
            }

foreach döngüsü ile form içindeki tüm çocuk formları kapatır.

“Form içinde alt form açmak” için bir cevap

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir