Cette documentation est archivée et n’est pas conservée.

ContextMenu, classe

Mise à jour : novembre 2007

Représente un menu contextuel. Bien que ContextMenuStrip remplace et ajoute des fonctionnalités au contrôle ContextMenu des versions antérieures, ContextMenu est conservé pour la compatibilité descendante et l'utilisation future si tel est votre choix.

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)

public class ContextMenu : Menu
public class ContextMenu extends Menu
public class ContextMenu extends Menu

La classe ContextMenu représente des menus contextuels qui peuvent être affichés quand l'utilisateur clique avec le bouton droit de la souris sur un contrôle ou une région du formulaire. Les menus contextuels sont généralement utilisés pour combiner différents éléments de menu du MainMenu d'un formulaire qui sont utiles à l'utilisateur compte tenu du contexte de l'application. Par exemple, vous pouvez utiliser un menu contextuel assigné à un contrôle TextBox pour afficher des éléments de menu permettant de modifier la police du texte, rechercher du texte dans le contrôle ou d'utiliser les fonctionnalités du Presse-papiers pour copier et coller du texte. Vous pouvez également afficher dans un menu contextuel de nouveaux objets MenuItem qui ne font pas partie du MainMenu afin d'afficher des commandes spécifiques qui ne sont pas utiles dans le MainMenu.

Généralement, un menu contextuel est affiché quand un utilisateur clique avec le bouton droit de la souris sur un contrôle ou sur le formulaire lui-même. Les contrôles et le Form visibles possèdent une propriété ContextMenu qui lie la classe ContextMenu au contrôle qui affiche le menu contextuel. Un ContextMenu peut être utilisé par plusieurs contrôles. Vous pouvez utiliser la propriété SourceControl pour identifier le dernier contrôle qui a affiché le menu contextuel afin d'effectuer des tâches spécifiques au contrôle ou modifier le menu contextuel affiché pour le contrôle.

Il est possible de savoir quand le menu contextuel est affiché afin de sélectionner/désélectionner des éléments, désactiver des éléments et effectuer d'autres opérations avant que le menu soit affiché pour l'utilisateur. Vous pouvez utiliser l'événement Popup pour déterminer quand le menu contextuel doit être affiché.

Remarque :

Pour utiliser dans un ContextMenu les objets MenuItem qui sont affichés dans un MainMenu, vous devez créer une copie du menu avec la méthode CloneMenu de la classe MenuItem. Vous pouvez également fusionner des éléments de menu et leurs éléments de sous-menu dans le même objet MenuItem en utilisant la méthode MergeMenu de la classe MenuItem.

Remarque sur la plateforme Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows CE :

Sur Pocket PC, évitez d'utiliser des menus contextuels sur des formulaires secondaires car ceux-ci restent affichés après la destruction des formulaires parents.

L'exemple de code suivant crée un gestionnaire d'événements pour l'événement Popup de ContextMenu. Le code figurant dans le gestionnaire d'événements détermine le contrôle qui affiche le menu contextuel parmi les deux contrôles PictureBox nommé pictureBox1 et TextBox nommé textBox1. En fonction du contrôle à l'origine de l'affichage du menu contextuel de ContextMenu, le contrôle ajoute les objets MenuItem appropriés à ContextMenu. Cet exemple requiert que vous disposiez d'une instance de la classe ContextMenu, appelée contextMenu1, définie dans le formulaire. Cet exemple requiert également que le formulaire comprenne un TextBox et un PictureBox et que la propriété ContextMenu de ces contrôles ait la valeur contextMenu1.

private void MyPopupEventHandler(System.Object sender, System.EventArgs e)
 {
    // Define the MenuItem objects to display for the TextBox.
    MenuItem menuItem1 = new MenuItem("&Copy");
    MenuItem menuItem2 = new MenuItem("&Find and Replace");
    // Define the MenuItem object to display for the PictureBox.
    MenuItem menuItem3 = new MenuItem("C&hange Picture");

    // Clear all previously added MenuItems.
    contextMenu1.MenuItems.Clear();

    if(contextMenu1.SourceControl == textBox1)
    {
       // Add MenuItems to display for the TextBox.
       contextMenu1.MenuItems.Add(menuItem1);
       contextMenu1.MenuItems.Add(menuItem2);
    }
    else if(contextMenu1.SourceControl == pictureBox1)
    {
       // Add the MenuItem to display for the PictureBox.
       contextMenu1.MenuItems.Add(menuItem3);
    }
 }


private void MyPopupEventHandler(Object sender, EventArgs e)
{
    // Define the MenuItem objects to display for the TextBox.
    MenuItem menuItem1 = new MenuItem("&Copy");
    MenuItem menuItem2 = new MenuItem("&Find and Replace");

    // Define the MenuItem object to display for the PictureBox.
    MenuItem menuItem3 = new MenuItem("C&hange Picture");

    // Clear all previously added MenuItems.
    contextMenu1.get_MenuItems().Clear();
    if (contextMenu1.get_SourceControl().Equals(textBox1)) {
        // Add MenuItems to display for the TextBox.
        contextMenu1.get_MenuItems().Add(menuItem1);
        contextMenu1.get_MenuItems().Add(menuItem2);
    }
    else {
        if (contextMenu1.get_SourceControl().Equals(pictureBox1)) {
            // Add the MenuItem to display for the PictureBox.
            contextMenu1.get_MenuItems().Add(menuItem3);
        }
    }
} //MyPopupEventHandler


Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Pocket PC

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0
Afficher: