Partager via


Comment : Créer des groupes personnalisés de boutons

Un groupe de commandes est une collection de commandes qui s'affichent toujours ensemble dans un menu ou une barre d'outils. Tout groupe de commandes peut être réutilisé en l'assignant à des menus parents dans la section de CommandPlacements du fichier de .vsct.

Les groupes de commandes contiennent généralement des boutons, mais ils peuvent également contenir d'autres menus ou zones d' combo .

Pour créer un groupe de boutons réutilisable

  1. Créez un VSPackage en exécutant le modèle de package Visual Studio, puis sélectionnez Commande de menu dans la page de Sélectionnez les options d'un VSPackage . Sinon, vous pouvez ouvrir un projet existant qui contient un fichier de .vsct. Pour plus d'informations, consultez Procédure pas - à - pas : Créer une commande de menu à l'aide de le modèle de package Visual Studio.

  2. ouvrez le fichier de .vsct dans le projet.

  3. dans la section d' Symbols , recherchez l'élément de GuidSymbol qui contient des groupes et des commandes pour le projet.

    Par défaut, il est nommé GUID <ProjectName> CmdSet.

  4. Ajoutez un élément d' IDSymbol pour votre groupe et un pour chaque bouton que vous ajouterez dans le groupe, comme indiqué dans l'exemple suivant.

    <GuidSymbol name="guidButtonGroupCmdSet" value="{f69209e9-975a-4543-821d-1f4a2c52d737}">
      <IDSymbol name="MyMenuGroup" value="0x1020" />
      <IDSymbol name="cmdidMyCommand" value="0x0100" />
    </GuidSymbol>
    

    Par défaut, le modèle de package crée un groupe nommé MyGroup et un bouton qui porte le nom que vous avez fourni, avec une entrée d' IDSymbol pour chacun.

  5. Dans la section d' Groups , créez un élément de groupe qui a même guid et id les attributs en tant que ceux indiqués dans la section d' Symbols . Vous pouvez également utiliser un groupe existant, ou l'entrée fournie par le modèle de package, comme indiqué dans l'exemple suivant.

    <Group guid="guidButtonGroupCmdSet" id="MyMenuGroup" priority="0x0600">
      <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
    </Group>
    

    Le groupe par défaut, comme dans l'exemple, apparaît dans le menu de Visual Studio Outils .

Pour remplir le groupe de boutons pour la réutilisation

  1. Vous pouvez mettre une commande ou un menu à un groupe à l'aide de le groupe en tant que parent dans la définition de la commande ou un menu, ou en plaçant la commande ou du menu au groupe en utilisant la section d'CommandPlacements .

    un bouton est défini comme élément de bouton à l'intérieur de la section de boutons . Définissez un bouton possédant votre groupe comme son parent, ou utilisez le bouton qui est fourni par le modèle de package, comme indiqué dans l'exemple suivant.

    <Button guid="guidButtonGroupCmdSet" id="cmdidMyCommand" priority="0x0100" type="Button">
      <Parent guid="guidButtonGroupCmdSet" id="MyMenuGroup" />
      <Icon guid="guidImages" id="bmpPic1" />
      <Strings>
        <CommandName>cmdidMyCommand</CommandName>
        <ButtonText>My Command name</ButtonText>
      </Strings>
    </Button>
    
  2. Si un bouton doit apparaître dans plusieurs groupes, créez une entrée pour celui-ci dans la section d' CommandPlacements . Définir les attributs d' guid et d' id de l'élément de CommandPlacement pour correspondre à celles du bouton que vous souhaitez positionner, puis affectez guid et id de son élément de parent à celles du groupe cible, comme indiqué dans l'exemple suivant.

    <CommandPlacements>
      <CommandPlacement guid="guidButtonGroupCmdSet" id="cmdidMyCommand" priority="0x105">
        <Parent guid="guidButtonGroupCmdSet" id="MyMenuGroup" />
      </CommandPlacement>
    </CommandPlacements>
    

    Notes

    la valeur du champ d' Priority détermine la position de la commande au nouveau groupe de commandes.Les priorités définies dans l'élément d' CommandPlacement substituent ces jeu dans la définition de l'élément.Les commandes qui ont des valeurs de priorité moindre sont affichées avant les commandes qui ont des valeurs plus élevée.Les valeurs en double élevée sont autorisées, mais la position relative des commandes qui ont la même valeur de priorité ne peut pas être garanti car l'ordre dans lequel la commande d' devenv setup crée l'interface finale du Registre peut ne pas être cohérente.

Pour mettre un groupe réutilisable de boutons dans un menu

  • créez une entrée dans la section d' CommandPlacements . Définissez le GUID et l'ID de l'élément d' CommandPlacement à celles de votre groupe, puis définissez le GUID et l'ID parents à ceux de l'emplacement cible. Notez qu'un groupe de commandes peut être inclus dans plusieurs menus. Le menu parent peut être une classe que vous avez créé, un qui est fourni par Visual Studio (comme décrit dans ShellCmdDef.vsct ou SharedCmdDef.vsct), ou qui est défini dans un autre VSPackage. Le nombre de couches de parentage est illimité tant que le menu parent est finalement connecté à Visual Studio ou à un menu contextuel qui s'affiche par un VSPackage.

    L'exemple suivant met le groupe dans la barre d'outils Explorateur de solutions , à droite des autres boutons.

    <CommandPlacements>
      <CommandPlacement guid="guidButtonGroupCmdSet" id="MyMenuGroup" 
          priority="0x605">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" />
      </CommandPlacement>
    </CommandPlacements>
    

Voir aussi

Tâches

Comment : Créer et gérer des commandes dans les VSPackages (c#)

Autres ressources

Tâches courantes avec des commandes, des menus, et les barres d'outils

Best Practices for Command Table Organization