Partager via


Fusion d'éléments de menu dans le contrôle MenuStrip Windows Forms

Si vous possédez une application d'interface multidocument (MDI), vous pouvez fusionner des éléments de menu ou des menus entiers du formulaire enfant dans les menus du formulaire parent.

Cette rubrique décrit les concepts de base associés à la fusion d'éléments de menu dans une application MDI.

Concepts généraux

Les procédures de fusion impliquent à la fois un contrôle cible et un contrôle de code source :

  • La cible est le contrôle MenuStrip sur le formulaire principal ou parent MDI dans lequel vous fusionnez des éléments de menu.

  • La source est le contrôle MenuStrip sur le formulaire enfant MDI qui contient les éléments de menu à fusionner dans le menu cible.

La propriété MdiWindowListItem identifie l'élément de menu dont vous remplissez la liste déroulante avec les titres des enfants MDI du formulaire parent MDI actuel. Par exemple, vous répertoriez en général les enfants MDI qui sont actuellement ouverts dans le menu Fenêtre.

La propriété IsMdiWindowListEntry identifie les éléments de menu qui proviennent d'un MenuStrip sur un formulaire enfant MDI.

Vous pouvez fusionner des éléments de menu manuellement ou automatiquement. Les éléments de menu fusionnent de la même façon pour les deux méthodes, mais la fusion est activée différemment, comme abordé dans les sections « Fusion manuelle » et « Fusion automatique », plus loin dans cette rubrique. Dans les fusions manuelle et automatique, chaque action de fusion affecte l'action de fusion suivante.

La fusion MenuStrip déplace des éléments de menu d'un ToolStrip à un autre plutôt que de les cloner, comme c'était le cas avec MainMenu.

Valeurs MergeAction

Vous définissez l'action de fusion sur les éléments de menu dans le MenuStrip de code source à l'aide de la propriété MergeAction.

Le tableau suivant décrit la signification et l'utilisation classique des actions de fusion disponibles.

Valeur MergeAction

Description

Utilisation courante

Append

(Valeur par défaut) Ajoute l'élément source à la fin de la collection de l'élément cible.

Ajout d'éléments de menu à la fin du menu lorsqu'une partie du programme est activée.

Insert

Ajoute l'élément source à la collection de l'élément cible, à l'emplacement spécifié par la propriété MergeIndex définie sur l'élément source.

Ajout d'éléments de menu au milieu ou au début du menu lorsqu'une partie du programme est activée.

Si la valeur de MergeIndex est la même pour les deux éléments de menu, ils sont ajoutés dans l'ordre inverse. Définissez MergeIndex convenablement pour conserver l'ordre d'origine.

Replace

Recherche une correspondance de texte ou utilise la valeur MergeIndex si aucune correspondance de texte n'est trouvée, puis remplace l'élément de menu cible correspondant par l'élément de menu source.

Remplacement d'un élément de menu cible par un élément de menu source du même nom dont la fonction est différente.

MatchOnly

Recherche une correspondance de texte ou utilise la valeur MergeIndex si aucune correspondance de texte n'est trouvée, puis ajoute tous les éléments déroulants de la source à la cible.

Génération d'une structure de menu qui insère ou ajoute des éléments de menu dans un sous-menu, ou supprime des éléments de menu d'un sous-menu. Par exemple, vous pouvez ajouter un élément de menu d'un enfant MDI à un menu Enregistrer sous MenuStrip principal.

MatchOnly vous permet de naviguer dans la structure de menu sans prendre de mesure. Il offre un moyen d'évaluer les éléments suivants.

Remove

Recherche une correspondance de texte ou utilise la valeur MergeIndex si aucune correspondance de texte n'est trouvée, puis supprime l'élément de la cible.

Suppression d'un élément de menu du MenuStrip cible.

Fusion manuelle

Seuls les contrôles MenuStrip participent à la fusion automatique. Pour combiner les éléments d'autres contrôles, tels que les contrôles ToolStrip et StatusStrip, vous devez les fusionner manuellement, en appelant les méthodes Merge et RevertMerge dans votre code selon les besoins.

Fusion automatique

Vous pouvez utiliser la fusion automatique pour les applications MDI en activant le formulaire source. Pour utiliser un MenuStrip dans une application MDI, définissez la propriété MainMenuStrip en fonction du MenuStrip cible afin que les actions de fusion exécutées sur le MenuStrip de code source soient répercutées dans le MenuStrip cible.

Vous pouvez déclencher la fusion automatique en activant le MenuStrip sur la source MDI. Lors de l'activation, le MenuStrip de code source est fusionné dans la cible MDI. Lorsqu'un nouveau formulaire devient actif, la fusion est rétablie sur le dernier formulaire et déclenchée sur le nouveau. Vous pouvez contrôler ce comportement en définissant la propriété MergeAction selon les besoins sur chaque ToolStripItem et en définissant la propriété AllowMerge sur chaque MenuStrip.

Voir aussi

Tâches

Comment : créer une liste des fenêtres MDI avec MenuStrip (Windows Forms)

Comment : configurer la fusion de menus automatique pour les applications MDI

Référence

ToolStripManager

MenuStrip

Autres ressources

MenuStrip, contrôle (Windows Forms)