Nasıl yapılır: MDI alt formları oluşturma
MDI alt formları, çok belgeli arabirim (MDI) uygulamalarınıntemel bir öğesidir ve bu formlar kullanıcı etkileşiminin ortalarıdır.
aşağıdaki yordamda, RichTextBox çoğu sözcük işleme uygulamasına benzer bir denetim görüntüleyen bir mdı alt formu oluşturmak için Visual Studio kullanacaksınız. Denetimi veya denetim System.Windows.Forms karışımı gibi diğer denetimlerle denetimi değiştirerek DataGridView , farklı olasılıklarla MDI alt pencereleri (ve UZANTıSı, MDI uygulamaları) oluşturabilirsiniz.
MDI alt formları oluşturma
Visual Studio yeni bir Windows Forms uygulama projesi oluşturun. Formun Özellikler penceresinde, IsMdiContainer özelliğini
trueveWindowsStateözelliğini olarak ayarlayınMaximized.Bu, formu alt Windows için bir MDI kapsayıcısı olarak belirler.
Öğesinden
Toolboxbir MenuStrip denetimi forma sürükleyin.TextÖzelliğini File olarak ayarlayın.Items özelliğinin yanındaki üç nokta (...) işaretine tıklayın ve Ekle ' ye tıklayarak iki alt araç şeridi menü öğesi ekleyin.
TextBu öğelerin özelliğini Yeni ve pencere olarak ayarlayın.Çözüm Gezgini, projeye sağ tıklayın ve ardından > Yeni öğe Ekle ' yi seçin.
yeni öğe ekle iletişim kutusunda, şablonlar bölmesinden Windows Form (Visual Basic veya Visual C# ' de) veya Windows Forms uygulama (.net) (Visual C++ olarak) seçeneğini belirleyin. Ad kutusuna formu Form2 olarak adlandırın. Formu projeye eklemek için Aç ' ı seçin.
Not
bu adımda oluşturduğunuz mdı alt formu standart bir Windows formundadır. Bu nedenle, Opacity formun saydamlığını denetlemenizi sağlayan bir özelliğine sahiptir. Ancak, Opacity özelliği üst düzey pencereler için tasarlanmıştır. Boyama sorunları gerçekleşebileceği için bunu MDI alt formları ile kullanmayın.
Bu form, MDI alt formlarınızın şablonu olacaktır.
Windows Form Tasarımcısı açılır, Form2 görüntülüyor.
Araç kutusundan bir RichTextBox denetimini forma sürükleyin.
Özellikler penceresinde,
Anchorözelliği üst, sol veDocközelliğini dolduracak şekilde ayarlayın.Bu, RichTextBox denetimin, form yeniden boyutlandırılırken bıle MDI alt formunun alanını tamamen doldurmasını sağlar.
Yeni menü öğesine çift tıklayarak Click onun için bir olay işleyicisi oluşturun.
Kullanıcı Yeni menü öğesine tıkladığında yenı bir MDI alt formu oluşturmak için aşağıdakine benzer bir kod ekleyin.
Not
Aşağıdaki örnekte, olay işleyicisi Click olayını işler
MenuItem2. Uygulama mimarinizin özelliklerine bağlı olarak Yeni menü öğesi bulunmayabilirMenuItem2.Protected Sub MDIChildNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click Dim NewMDIChild As New Form2() 'Set the Parent Form of the Child window. NewMDIChild.MdiParent = Me 'Display the new form. NewMDIChild.Show() End Subprotected void MDIChildNew_Click(object sender, System.EventArgs e){ Form2 newMDIChild = new Form2(); // Set the Parent Form of the Child window. newMDIChild.MdiParent = this; // Display the new form. newMDIChild.Show(); }private: void menuItem2_Click(System::Object ^ sender, System::EventArgs ^ e) { Form2^ newMDIChild = gcnew Form2(); // Set the Parent Form of the Child window. newMDIChild->MdiParent = this; // Display the new form. newMDIChild->Show(); }C++ ' da,
#includeForm1. h ' nin en üstüne aşağıdaki yönergeyi ekleyin:#include "Form2.h"Özellikler penceresinin üst kısmındaki aşağı açılan listede, Dosya menü şeridine karşılık gelen menü şeridi ' ni seçin ve MdiWindowListItem özelliği pencereye ayarlayın ToolStripMenuItem .
Bu, pencere menüsünün, etkin alt pencerenin yanındaki bir onay işaretiyle bırlıkte açık MDI alt pencereleri listesini korumasını sağlar.
Uygulamayı çalıştırmak için F5'e basın. Dosya menüsünden Yeni ' yi seçerek, pencere menü öğesinde izlenen yeni MDI alt formları oluşturabilirsiniz.
Not
Bir MDI alt form MainMenu bileşeni olduğunda (genellikle menü öğelerinin bir menü yapısı ile) ve bileşeni olan BIR MDI parent formu içinde ( MainMenu genellikle menü öğelerinin bir menü yapısıyla) açılırsa, MergeType Özelliği (ve isteğe bağlı olarak, özelliğini) ayarladıysanız menü öğeleri otomatik olarak birleştirilir MergeOrder . MergeTypeHer iki MainMenu bileşenin özelliğini ve alt formun tüm menü öğelerini olarak ayarlayın MergeItems . Ayrıca, MergeOrder özelliğini her iki menüdeki menü öğelerinin istenen sırada görünmesi için ayarlayın. Üstelik, bir MDI parent formunu kapattığınızda, MDI alt formlarının her biri Closing Closing MDI parent olayı oluşturulmadan önce bir olay harekete geçirdiğini aklınızda bulundurun. MDI alt öğesinin olayının iptal edilmesi Closing MDI üst öğesinin olayının oluşmasını engellemez Closing ; ancak CancelEventArgs MDI parent olayının bağımsız değişkeni Closing Şimdi olarak ayarlanır
true. Bağımsız değişkenini olarak ayarlayarak MDI parent ve tüm MDI alt formlarını kapanmaya zorlayabilirsiniz CancelEventArgsfalse.