Nasıl yapılır: MDI alt formları oluşturma

MDI alt formları, Çok Belgeli Arabirim (MDI) uygulamalarının temel bir öğesidir, bu formlar kullanıcı etkileşiminin merkezidir.

Aşağıdaki yordamda, çoğu sözcük işleme uygulamasına benzer bir denetim görüntüleyen bir RichTextBox MDI alt formu oluşturmak için Visual Studio'yu kullanacaksınız. Denetimi, denetim gibi DataGridView diğer denetimlerle veya denetimlerin bir karışımıyla değiştirerekSystem.Windows.Forms, çeşitli olasılıklarla MDI alt pencereleri (ve uzantıya göre MDI uygulamaları) oluşturabilirsiniz.

MDI alt formları oluşturma

  1. Visual Studio'da yeni bir Windows Forms uygulama projesi oluşturun. Formun Özellikler penceresinde, özelliğini true olarak ve WindowsState özelliğini olarak MaximizedayarlayınIsMdiContainer.

    Bu, formu alt pencereler için bir MDI kapsayıcısı olarak gösterir.

  2. içinden Toolbox, forma bir MenuStrip denetim sürükleyin. Text Özelliğini Dosya olarak ayarlayın.

  3. Items özelliğinin yanındaki üç noktaya (...) tıklayın ve iki alt araç şeridi menü öğesi eklemek için Ekle'ye tıklayın. Text Bu öğelerin özelliğini Yeni ve Pencere olarak ayarlayın.

  4. Çözüm Gezgini'de projeye sağ tıklayın ve ardından Yeni Öğe Ekle'yi>seçin.

  5. Yeni Öğe Ekle iletişim kutusunda, Şablonlar bölmesinden Windows Formu (Visual Basic'te veya Visual C#'da) veya Windows Forms Uygulaması'nı (.NET'te) (Visual C++'da) seçin. Ad kutusunda formu Form2 olarak adlandırın. Formu projeye eklemek için Aç'ı seçin.

    Dekont

    Bu adımda oluşturduğunuz MDI alt formu standart bir Windows Formudur. Bu nedenle, formun saydamlığını denetlemenizi sağlayan bir Opacity özelliği vardır. Ancak, Opacity özellik üst düzey pencereler için tasarlanmıştır. Tablo sorunları olabileceği için bunu MDI alt formlarıyla kullanmayın.

    Bu form, MDI alt formlarınızın şablonu olacaktır.

    Windows Forms Tasarım Aracı açılır ve Form2 görüntülenir.

  6. Araç Kutusu'ndan forma bir RichTextBox denetimi sürükleyin.

  7. Özellikler penceresinde, özelliği Üst, Sol ve Dock özelliği Dolgu olarak ayarlayınAnchor.

    Bu, form yeniden boyutlandırıldığında bile denetimin MDI alt formunun alanını tamamen doldurmasına neden olur RichTextBox .

  8. Yeni menü öğesine çift tıklayarak bunun için bir Click olay işleyicisi oluşturun.

  9. Kullanıcı Yeni menü öğesine tıkladığında yeni bir MDI alt formu oluşturmak için aşağıdakine benzer bir kod ekleyin.

    Dekont

    Aşağıdaki örnekte, olay işleyicisi için MenuItem2olayını işlerClick. Uygulama mimarinizin özelliklerine bağlı olarak Yeni menü öğenizin olmayabileceğini MenuItem2unutmayın.

    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 Sub
    
    protected 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++'ta, Form1.h'nin en üstüne aşağıdaki #include yönergeyi ekleyin:

    #include "Form2.h"
    
  10. Özellikler penceresinin en üstündeki açılan listede, Dosya menü şeridine karşılık gelen menü şeridini seçin ve özelliğini Pencere ToolStripMenuItemolarak ayarlayınMdiWindowListItem.

    Bu, Pencere menüsünün etkin alt pencerenin yanında onay işareti olan açık MDI alt pencerelerinin listesini tutmasını sağlar.

  11. 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.

    Dekont

    MDI alt formunun bir MainMenu bileşeni olduğunda (genellikle menü öğelerinin menü yapısıyla) ve bileşeni olan bir MainMenu MDI üst formu içinde açıldığında (genellikle menü öğelerinin menü yapısıyla), özelliği ayarladıysanız MergeType (ve isteğe bağlı olarak MergeOrder özelliği) menü öğeleri otomatik olarak birleştirilir. MergeType Hem bileşenlerin hem de MainMenu alt formun tüm menü öğelerinin özelliğini olarak MergeItemsayarlayın. Ayrıca, her iki menüdeki menü öğelerinin istenen sırada görünmesi için özelliğini ayarlayın MergeOrder . Ayrıca, bir MDI üst formunu kapattığınızda, MDI alt formlarının her birinin MDI üst öğesi için olay başlatılmadan önce Closing bir Closing olay oluşturduğunu unutmayın. MDI alt öğesinin Closing olayının iptal edilmesi MDI üst öğesinin Closing olayının tetiklenmesini engellemez; ancak MDI CancelEventArgs üst öğesinin Closing olayının bağımsız değişkeni artık olarak trueayarlanır. bağımsız değişkenini olarak ayarlayarak MDI üst öğesini ve tüm MDI alt formlarını kapanmaya CancelEventArgsfalsezorlayabilirsiniz.

Ayrıca bkz.