Compartir a través de


Cómo: Crear grupos reutilizable de botones

Un grupo de comando es una colección de comandos que aparecen siempre juntos en un menú o una barra de herramientas. Cualquier grupo de comandos puede reutilizar asignándolo a diferentes menús principales en la sección de CommandPlacements del archivo de .vsct.

Los grupos de comando contienen normalmente los botones, pero también pueden contener otros menús o cuadros de combo .

Para crear un grupo reutilizable de botones

  1. Crear un Paquete ejecutando la plantilla paquete de Visual Studio, y seleccione Comando de menú en la página de Opciones de selección de VSPackage . Como alternativa, puede abrir un proyecto existente que contiene un archivo de .vsct. Para obtener más información, vea tutorial: Crear un comando de menú mediante la plantilla de paquete de Visual Studio.

  2. Abra el archivo de .vsct en el proyecto.

  3. En la sección de Symbols , busque el elemento de GuidSymbol que contiene los grupos y los comandos para el proyecto.

    de forma predeterminada, se denomina guid <ProjectName> CmdSet.

  4. Agregue un elemento de IDSymbol para el grupo y uno para cada botón agregar el grupo, tal y como se muestra en el ejemplo siguiente.

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

    De forma predeterminada, la plantilla de paquete crea un grupo denominado MyGroup y un botón que tiene el nombre que proporcionó, así como una entrada de IDSymbol para cada uno.

  5. En la sección de Groups , cree un nuevo elemento de Agrupar que tiene la guid y atributos de id que los especificados en la sección de Symbols . También puede utilizar un grupo existente, o utilice la entrada proporcionada por la plantilla de paquete, como se muestra en el ejemplo siguiente.

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

    el grupo predeterminado, que se muestra en el ejemplo, aparece en el menú de Visual Studio Herramientas .

Para rellenar un grupo de botones para su reutilización

  1. Puede colocar un comando o un menú en un grupo con el grupo como elemento primario en la definición del comando o un menú, o colocando el comando o del grupo mediante la sección deCommandPlacements .

    Un botón se define como un elemento de Botn dentro de la sección de Botones . Defina un botón que tiene el grupo como su elemento primario, o utilice el botón proporcionado por la plantilla de paquete, como se muestra en el ejemplo siguiente.

    <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 botón debe aparecer en más de un grupo, cree una entrada para él en la sección de CommandPlacements . Establezca los atributos de guid y de id de elemento de CommandPlacement para coincidir con los del botón que desee colocar y, a continuación para establecer guid y id del elemento de elemento primario a los del grupo destino, como se muestra en el ejemplo siguiente.

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

    El valor del campo de Priority determina la posición del comando del nuevo grupo de comando.Las prioridades establecidas en el elemento de CommandPlacement reemplazan que el conjunto en la definición del elemento.Muestra los comandos que tienen valores de menor prioridad antes de los comandos que tienen valores de prioridad máxima.Se permiten los valores de prioridad duplicados, pero la posición relativa de los comandos que tienen el mismo valor de prioridad no se puede garantizar como el orden en que el comando de devenv setup crea la interfaz final del registro puede no ser coherente.

Para colocar un grupo reutilizable de botones en un menú

  • cree una entrada en la sección de CommandPlacements . Establezca el GUID y el identificador del elemento de CommandPlacement a los del grupo, y establezca el GUID y el identificador primarios a los de la ubicación de destino. Observe que un grupo de comandos puede estar incluido en más de un menú. El menú primario puede ser un que creó, uno proporcionado por Visual Studio (como se describe en ShellCmdDef.vsct o SharedCmdDef.vsct), o uno definido en otro paquete VSPackage. El número de niveles de relación jerárquica es ilimitado mientras el menú primario esté conectado finalmente con Visual Studio o con un menú contextual mostrado en un VSPackage.

    El ejemplo siguiente se coloca el grupo en la barra de herramientas de Explorador de soluciones , a la derecha de los otros botones.

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

Vea también

Tareas

Cómo: Crear y controlar los comandos en VSPackages (C#)

Otros recursos

Tareas comunes con los comandos, menús, barras de herramientas y

Best Practices for Command Table Organization