Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les formulaires enfants MDI constituent un élément essentiel des applicationsMultiple-Document Interface (MDI), car ces formulaires constituent le centre d’interaction utilisateur.
Dans la procédure suivante, vous allez utiliser Visual Studio pour créer un formulaire enfant MDI qui affiche un RichTextBox contrôle, similaire à la plupart des applications de traitement de texte. En remplaçant le System.Windows.Forms contrôle par d’autres contrôles, tels que le DataGridView contrôle ou un mélange de contrôles, vous pouvez créer des fenêtres enfants MDI (et, par extension, des applications MDI) avec diverses possibilités.
Créer des formulaires enfants MDI
Créez un projet d’application Windows Forms dans Visual Studio. Dans la fenêtre Propriétés du formulaire, définissez sa propriété IsMdiContainer sur
true
, et sa propriétéWindowsState
surMaximized
.Cela désigne le formulaire en tant que conteneur MDI pour les fenêtres enfants.
Faites glisser un élément de contrôle
Toolbox
à partir de MenuStrip vers le formulaire. Définissez saText
propriété sur File.Cliquez sur les points de suspension (...) en regard de la propriété Éléments, puis cliquez sur Ajouter pour ajouter deux éléments de menu enfants de la barre d'outils. Définissez la
Text
propriété pour ces éléments sur New et Window.Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Ajouter>un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément , sélectionnez Windows Form (en Visual Basic ou en Visual C#) ou Application Windows Forms (.NET) ( en Visual C++) dans le volet Modèles . Dans la zone Nom , nommez le formulaire Form2. Sélectionnez Ouvrir pour ajouter le formulaire au projet.
Remarque
Le formulaire enfant MDI que vous avez créé à cette étape est un Windows Form standard. Par conséquent, il a une Opacity propriété, qui vous permet de contrôler la transparence du formulaire. Toutefois, la Opacity propriété a été conçue pour les fenêtres de niveau supérieur. Ne l’utilisez pas avec des formulaires enfants MDI, car des problèmes de peinture peuvent se produire.
Ce formulaire sera le modèle de vos formulaires enfants MDI.
Le Concepteur Windows Forms s’ouvre et affiche Form2.
À partir de la boîte à outils, faites glisser un contrôle RichTextBox vers le formulaire.
Dans la fenêtre Propriétés , définissez la
Anchor
propriété sur Top, Left et laDock
propriété sur Fill.Cela entraîne le contrôle RichTextBox à remplir complètement la zone du formulaire enfant MDI, même lorsque le formulaire est redimensionné.
Double-cliquez sur l’élément de menu Nouveau pour créer un gestionnaire d’événements Click pour celui-ci.
Insérez du code similaire à ce qui suit pour créer un formulaire enfant MDI lorsque l’utilisateur clique sur l’élément de menu Nouveau .
Remarque
Dans l’exemple suivant, le gestionnaire d’événements gère l’événement Click pour
MenuItem2
. N’oubliez pas que, selon les spécificités de votre architecture d’application, votre nouvel élément de menu peut ne pas êtreMenuItem2
.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(); }
En C++, ajoutez la directive suivante
#include
en haut de Form1.h :#include "Form2.h"
Dans la liste déroulante située en haut de la fenêtre Propriétés , sélectionnez la bande de menus correspondant à la bande de menus Fichier et définissez la MdiWindowListItem propriété sur la fenêtre ToolStripMenuItem.
Cela permet au menu Fenêtre de conserver une liste de fenêtres enfants MDI ouvertes avec une coche à côté de la fenêtre enfant active.
Appuyez sur F5 pour exécuter l’application. En sélectionnant Nouveau dans le menu Fichier , vous pouvez créer de nouveaux formulaires enfants MDI, qui sont suivis dans l’élément de menu Fenêtre .
Remarque
Lorsqu’un formulaire enfant MDI a un MainMenu composant (avec, généralement, une structure de menu d’éléments de menu) et qu’il est ouvert dans un formulaire parent MDI qui a un MainMenu composant (avec généralement une structure de menu d’éléments de menu), les éléments de menu se fusionnent automatiquement si vous avez défini la MergeType propriété (et éventuellement, la MergeOrder propriété). Définissez la MergeType propriété des deux composants MainMenu et de tous les éléments de menu du formulaire enfant sur MergeItems. En outre, définissez la MergeOrder propriété afin que les éléments de menu des deux menus apparaissent dans l’ordre souhaité. En outre, gardez à l’esprit que lorsque vous fermez un formulaire parent MDI, chacun des formulaires enfants MDI déclenche un événement Closing avant que les événements pour le parent MDI Closing ne soient émis. L’annulation de l’événement d’un Closing enfant MDI n’empêchera pas l’événement du parent MDI d’être déclenché; toutefois, l’argument Closing de l’événement du parent MDI est maintenant défini sur CancelEventArgs. Vous pouvez forcer le parent MDI et tous les formulaires enfants MDI à fermer en définissant l’argument CancelEventArgs sur
false
.
Voir aussi
.NET Desktop feedback