Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MDI-kindformulieren zijn een essentieel element van Multiple-Document Interface (MDI)-toepassingen, omdat deze formulieren de kern van de gebruikersinteractie vormen.
In de volgende procedure gebruikt u Visual Studio om een MDI-kindformulier te maken dat een RichTextBox-besturingselement weergeeft, vergelijkbaar met de meeste tekstverwerkingsprogramma's. Door het System.Windows.Forms besturingselement te vervangen door andere besturingselementen, zoals het DataGridView besturingselement of een combinatie van besturingselementen, kunt u MDI-onderliggende vensters (en door uitbreiding MDI-toepassingen) met diverse mogelijkheden maken.
MDI-kindformulieren maken
Maak een nieuw Windows Forms-toepassingsproject in Visual Studio. Stel in het venster Eigenschappen voor het formulier de eigenschap IsMdiContainer in op
trueen de eigenschapWindowsStateopMaximized.Hiermee wordt het formulier aangeduid als een MDI-container voor kindervensters.
Sleep vanuit de
Toolboxeen MenuStrip controle naar het formulier. Stel de eigenschapTextervan in op File.Klik op het beletselteken (...) naast de eigenschap Items en klik op toevoegen om twee menu-items voor onderliggende hulpmiddelen toe te voegen. Stel de eigenschap
Textvoor deze items in op Nieuwe en Venster.Klik in Solution Explorer-met de rechtermuisknop op het project en selecteer >Nieuw item toevoegen.
Selecteer in het dialoogvenster Nieuw item toevoegen het Windows-formulier (in Visual Basic of in Visual C#) of de Windows Forms Application (.NET) (in Visual C++) in het deelvenster Sjablonen. Geef in het vak Naam de naam Formulier2. Selecteer Open om het formulier toe te voegen aan het project.
Opmerking
Het MDI-kindformulier dat u in deze stap hebt gemaakt, is een standaard Windows-formulier. Als zodanig heeft het een eigenschap Opacity, waarmee u de transparantie van het formulier kunt beheren. De eigenschap Opacity is echter ontworpen voor vensters op het hoogste niveau. Gebruik het niet met MDI-kindformulieren, omdat er weergaveproblemen kunnen optreden.
Dit formulier is de sjabloon voor uw MDI-kindformulieren.
De Windows Forms Designer wordt geopend, met Form2.
Sleep vanuit de Toolboxeen RichTextBox controle naar het formulier.
Stel in het venster Eigenschappen de eigenschap
Anchorin op Boven, Links en de eigenschapDockop Vullen.Dit zorgt ervoor dat het besturingselement RichTextBox het gebied van het MDI-kindformulier volledig vult, zelfs wanneer het formulier wordt herzien.
Dubbelklik op het menu-item Nieuw om er een Click gebeurtenis-handler voor te maken.
Voeg code in die lijkt op het volgende om een nieuw MDI-onderliggend formulier te maken wanneer de gebruiker op de menuopdracht Nieuw klikt.
Opmerking
In het volgende voorbeeld verwerkt de eventhandler het Click event voor
MenuItem2. Houd er rekening mee dat, afhankelijk van de specifieke kenmerken van uw toepassingsarchitectuur, het menu-item Nieuwe mogelijk niet isMenuItem2.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(); }Voeg in C++de volgende
#includeinstructie toe bovenaan Form1.h:#include "Form2.h"Selecteer in de vervolgkeuzelijst bovenaan het venster Eigenschappen de menustrook die overeenkomt met de menustrook Bestand en stel de eigenschap MdiWindowListItem in op het venster ToolStripMenuItem.
Hierdoor kan het menu Venster een lijst met geopende MDI-onderliggende vensters onderhouden met een vinkje naast het actieve onderliggende venster.
Druk op F5- om de toepassing uit te voeren. Als u Nieuw selecteert in het menu Bestand, kunt u nieuwe MDI-kindformulieren maken, die worden weergegeven in het menu-item Venster.
Opmerking
Wanneer een MDI-kindvenster een MainMenu-component heeft (meestal met een menustructuur van menu's) en het wordt geopend in een MDI-hoofdvenster met een MainMenu-component (meestal met een menustructuur van menu's), worden de menu's automatisch samengevoegd als u de eigenschap MergeType hebt ingesteld (en eventueel de eigenschap MergeOrder). Stel zowel de eigenschap MergeType van de MainMenu-componenten als van alle menu-items van het onderliggende formulier in op MergeItems. Stel bovendien de eigenschap MergeOrder in, zodat de menu-items uit beide menu's in de gewenste volgorde worden weergegeven. Houd er bovendien rekening mee dat wanneer u een MDI-hoofdformulier sluit, elk van de MDI-kindformulieren een Closing-event genereert voordat de Closing-event voor het MDI-hoofdelement wordt gegenereerd. Als u de Closing gebeurtenis van een MDI-kind annuleert, wordt niet voorkomen dat de Closing gebeurtenis van de MDI-ouder wordt gegenereerd; het argument CancelEventArgs voor de Closing gebeurtenis van de MDI-ouder wordt nu echter ingesteld op
true. U kunt afdwingen dat het MDI-hoofdvenster en alle MDI-onderliggende formulieren worden gesloten door het argument CancelEventArgs opfalsein te stellen.
Zie ook
.NET Desktop feedback