MDI ÖZELLİKLİ FORMLAR
Visual Basic uygulamaları aynı anda birden fazla
pencereyi açık tutma imkanı vardır. Gerektiğinde birden fazla pencereyi açık
tutmaya imkan vermek için şimdiye kadar projelerde kullanılan formlardan farklı
olarak MDI (Multi Document Interface) adı verilen çoklu formlar kullanılır.
Üzerinde çalıştığınız projeye MDI özellikli form eklemek istiyorsanız Şekil
13.1' de görüldüğü gibi Project menüsünden Add MDI Form
komutunu vermelisiniz.
Şekil 13.1 :
Projeye MDI özellikli form eklenmesiProject menüsünden Add MDI Form komutunu verirseniz, daha önce Form1 adında normal bir form içeren projeye MDIFrom1 adında yeni bir form eklenir. Şekil 13.2'deki ekran görüntüsünü projeye MDI özellikli bir form ekledikten sonra aldım.
MDI özellikli form, projede tek
başına yer alabileceği gibi çok sayıda alt form (Child) da içerebilir. Diğer
yandan bir projede yalnız bir tek MDI özellikli form bulunabilir. Üzerinde
çalıştığınız projeye MDI özellikli bir form ekledikten sonra istediğiniz
sayıda alt formu başka bir deyişle Child
formu projeye dahil edebilirsiniz. Projedeki MDI özellikli forma alt formlar
dahil etmek için Project menüsünden Add Form komutu ile yeni form dahil edilip
bu formun child form olması sağlanır veya projedeki mevcut formlara Child özelliği verilir. Forma Child özelliği
vermesi, properties penceresindeki MDIChild özelliğinin True yapılması ile sağlanır.
Şekil 13.2: Projeye eklenen MDI özellikli form
13.1.MDI Formların Özellikleri
MDI formlarla ilgili olarak bazı işlemleri yapmak için yeni bir proje başlatılacaktır. Bu projeye biri MDI özellikli olmak üzere 4 adet form eklenecektir. Ayrıca MDI özellikli formu, Project menüsündeki Properties komutu ile ekrana getirilen Project Properties diyalog kutusunda başlangıç formu olarak seçilecektir.
MDI özellikli form ve bu forma eklenen alt formların özellikleri ile normal formların özellikleri arasında bazı farklılıklar bulunmaktadır. Normal formların ekrandaki konumu ve büyüklüklerini programcı, tasarım veya çalışma anında belirleyebiliyordu. Örneğin programcı bir projedeki bir Formu tasarım anında ekranın orta yerine yerleştirmişse, söz konusu proje çalıştırıldığında Form tasarım anındaki yerini koruyordu. Windows ve Windows uyumlu programların pencerelerine dahil edilen alt pencere veya bilgiler pencereye sığmıyorsa, otomatik olarak pencerenin sağ kenarına düşey ve yatay kaydırma çubukları eklenir. Benzer durum MDI özellikli pencereler içinde geçerlidir. MDI özellikli pencereye dahil edilen pencerelerin(Child Form) boyutları çalışma anında değiştirilip alt pencerelerden birinin pencereye sığmaması halinde, MDI pencereye düşey kaydırma çubuğu otomatik olarak eklenir. MDI özellikli pencerelere kaydırma çubuklarının gerektiğinde otomatik olarak eklenmesini istemiyorsanız, MDI özellikli Forma ait Properties penceresinde ScrollBars değişkenine False değerini aktarmalısınız. Şimdi MDI özellikli başlangıç
formuna ait Form_Load yordamına Şekil 13.3'deki gibi, alt (Child) formların
yüklenmesini sağlayacak program satırlarını ekleyelim.
Şekil 13.3 : Child formların ekrana gelmesini
sağlayacak program satırları
Bu şekilde tasarlanan proje çalıştırılacak olunursa
Şekil 13.4'de verilen ekran görüntüsü elde edilir.
Şekil 13.4 : Proje çalıştırıldıktan sonra alınan ekran görüntüsü
Eğer MDI özellikli forma ait ScrollBars değişkeninin içeriği daha önceden False yapılmış olsaydı, kaydırma çubukları MDI özellikli forma eklenmezdi.
Daha önceki konulardan bildiğiniz gibi Ekranı Kaplama ve Simge Durumuna Küçültme gibi düğmeleri normal formlardan istediğinizde kaldırabiliyordunuz. Ancak MDI özellikli formlarda bu mümkün değildir. MDI özellikli formlarda Windows uyumlu bir pencerenin bütün özellikleri bulunur. Bu özelliklerde tasarım veya çalışma
anında değişiklik yapmanız mümkün değildir.13.1.1.MDI Formlar İçin Araç Çubuğu Hazırlamak
Şekil 13.5 : Word 97 ekranı
Şimdi bu Word penceresini dikkatli bir şekilde incelemelisiniz. Bu Word penceresinde şimdiye kadar ekran görüntüsü verilen Visual Basic formlarından farklı olarak bir menü ve birde araç çubuğu var. Demek ki MDI özellikli Formlara menü ve araç çubukları eklenebilmektedir. MDI formlara ToolBox penceresinden yararlanarak menü, resim kutusu ve araç çubukları dışında başka nesne eklenemez.ToolBox penceresinde MDI formlara araç çubuğu eklerken kullanılan bir düğme veya denetim yoktur. MDI özellikli Formlara araç çubuğu eklemek için ToolBox penceresindeki PictureBox kontrolünden yararlanılır.
Tasarım anında MDI özellikli bir Form aktif form durumda iken PictureBox kontrolünün işlevinde değişiklik olur. Picture Box kontrolünü temsil eden düğme seçili durumda iken mouse ile formun her hangi bir yerinde sürükleme işlemi yapacak olursanız Formun üzerine henüz düğme veya ikon içermeyen Şekil 13.6'daki gibi bir araç çubuğu eklenir.Şekil 13.6 :
Üzerine araç çubuğu yerleştirilmiş MDI form Buna göre programcının Araç Çubuğunun genişliğini seçme şansı yoktur. Ancak programcı Araç Çubuğunun yüksekliğini istediği gibi ayarlayabilir. Üzerinde çalıştığınız MDI özellikli formda bir araç çubuğu varken ikinci bir araç çubuğunu ekleyebilirsiniz. MDI özellikli formun PictureBox nesnesi eklenen kısımlarına, normal formlarda olduğu gibi istediğiniz nesne veya kontrolleri dahil edebilirsiniz. Buna göre MDI formunun Araç çubuğu olarak sınırlanan kısımları normal form alanı gibi kullanılabilir. Word ve Excel gibi programlarda olduğu gibi araç çubuğu hazırlamak, MDI Formunun araç çubuğu alanı olarak belirlenen kısmına düğme veya ikon yerleştirmekten ibarettir. Düğme yerleştirmek demek, araç çubuğunun üzerine ikinci bir PictureBox nesnesi yerleştirmek demektir. Şekil 13.7'de verilen ekran görüntüsü araç çubuğuna iki düğme eklendikten sonra alınmıştır.Şekil 13.7 : Düğme yerleştirilmiş araç çubuğu
Şekil 13.8 :
Picture2 düğmesine ait kod penceresiAncak Word gibi programlarda araç çubukları yerleştirilen düğmelerin işlevini kullanıcıya anımsatmak için düğmelerin üzerine küçük resimler yerleştirilmektedir. Normal düğme veya Command Button nesnelerinin üzerine resim yerleştirme imkanı yoktu. Araç çubuğuna düğme yerleştirdikten sonra bu düğmeye küçük resim yerleştirmek için properties penceresindeki Picture özelliğini kullanmalıyız. Düğme seçili iken Picture özelliğinden Load Picture diyalog kutusuna ulaşırız. Buradan İCO uzantılı herhangi bir resim dosyası seçerek OK butonunu tıklamalıyız. Böylece seçtiğimiz ikonu düğmeye yerleştirmiş oluruz.
13.1.2. Çalışma Anında Projeye Yeni Child Form Eklemek
Çalışma anında projeye yeni bir alt (Child) form
hazırlamak için işe Form için kullanılmak üzere bir değişken tanımlamak ile
başlamak gerekir. Hazırlayacağımız örnek projede, biri MDI özellikli, diğeri
normal form olan iki form bulunmaktadır. Şekil 13.9'da verilen program kodları
ile önce tasarım anında projeye dahil edilen form1 ile aynı özelliğe sahip
'YeniForm' adında yeni bir form nesnesi
tanımlanmaktadır. Sonra oluşturulan yeni formun Caption özelliğine 'Child Form'
değeri atanmakta ve daha sonra Form1 adlı form ile YeniForm adlı form show
metodu ile ekrana getirilmektedir.
Şekil 13.9 : Projeye yeni form ekleme
Projeyi çalıştırdığımızda Şekil 13.10'da gördüğünüz
ekran görüntüsünü elde ederiz.
Şekil 13.10 : Proje çalıştırıldıktan sonra elde edilen ekran görüntüsü