Compartir a través de


Introducción al modelo de objetos de la cinta de herramientas

El entorno de ejecución de Visual Studio Tools para Office expone un modelo de objetos con tipado fuerte que puede usar para obtener y establecer las propiedades de los controles de la cinta de opciones en tiempo de ejecución. Por ejemplo, puede rellenar dinámicamente controles de menú o mostrar y ocultar controles contextualmente. También puede agregar pestañas, grupos y controles a una cinta de opciones, pero solo antes de que la aplicación de Office cargue la cinta de opciones. Para obtener información, vea Establecer propiedades que se convierten en de solo lectura.

Se aplica a: La información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para las siguientes aplicaciones: Excel; InfoPath 2013 e InfoPath 2010; Outlook; PowerPoint; Project; Visio; Word. Para obtener más información, vea Características disponibles por aplicación de Office y tipo de proyecto.

Este modelo de objetos de la cinta consta principalmente de la clase Ribbon, los eventos Ribbon y las clases de control de cinta.

Clase Ribbon

Al agregar un nuevo elemento Ribbon (Diseñador visual) a un proyecto, Visual Studio agrega una clase Ribbon a su proyecto. La clase Ribbon hereda de la RibbonBase clase .

Esta clase aparece como una clase parcial que se divide entre el archivo de código de Ribbon y el archivo de código del Diseñador de Ribbon.

Eventos de la cinta de opciones

La clase Ribbon contiene los tres eventos siguientes:

Event Description
Load Se activa cuando la aplicación de Office carga la personalización de la cinta de opciones. El Load controlador de eventos se añade automáticamente al archivo de código del Ribbon. Utilice este controlador de eventos para ejecutar código personalizado cuando se cargue la cinta de opciones.
LoadImage Permite almacenar en caché imágenes al personalizar la cinta de opciones cuando esta se carga. Puede obtener un ligero aumento de rendimiento si escribe código para almacenar en caché las imágenes de la cinta de opciones en este controlador de eventos. Para obtener más información, consulte LoadImage.
Close Se genera cuando se cierra la instancia del Ribbon.

Controles de la cinta de opciones

El Microsoft.Office.Tools.Ribbon espacio de nombres contiene un tipo para cada control que ve en el grupo Controles de cinta de Office del cuadro de herramientas.

En la tabla siguiente se muestra el tipo de cada Ribbon control. Para obtener una descripción de cada control, consulte Visión general de la cinta de opciones.

Nombre del control Nombre de clase
Caja RibbonBox
Botón RibbonButton
GrupoDeBotones RibbonButtonGroup
CheckBox RibbonCheckBox
ComboBox RibbonComboBox
DropDown RibbonDropDown
EditBox RibbonEditBox
Galería RibbonGallery
Grupo RibbonGroup
Etiqueta RibbonLabel
Menu RibbonMenu
Separador RibbonSeparator
SplitButton RibbonSplitButton
Pestaña RibbonTab
ToggleButton RibbonToggleButton

El Microsoft.Office.Tools.Ribbon espacio de nombres usa el prefijo "Ribbon" para estos tipos para evitar una colisión de nombres con los nombres de las clases de control en el System.Windows.Forms espacio de nombres.

Al agregar un control al Diseñador de cintas, el Diseñador de cintas declara la clase para ese control como un campo en el archivo de código del Diseñador de cintas.

Tareas comunes que usan las propiedades de los controles de la cinta de opciones

Cada Ribbon control contiene propiedades que se pueden usar para realizar diversas tareas, como asignar una etiqueta a un control o ocultar y mostrar controles.

En algunos casos, las propiedades se convierten en de solo lectura después de que la cinta de opciones se cargue o después de agregar un control a un menú dinámico. Para obtener más información, consulte Establecimiento de propiedades que se convierten en de solo lectura.

En la tabla siguiente se describen algunas de las tareas que puede realizar mediante Ribbon propiedades de control.

Para esta tarea: Haga esto:
Oculte o muestre un control. Utiliza la propiedad Visible.
Habilite o deshabilite un control. Use la propiedad habilitada.
Establezca el tamaño de un control. Utilice la propiedad ControlSize.
Obtenga la imagen que se muestra en un control. Utilice la propiedad Image.
Cambie la etiqueta de un control. Utilice la propiedad Label.
Agregue datos definidos por el usuario a un control . Utilice la propiedad Tag.
Obtener los elementos en un RibbonBox, RibbonDropDown, RibbonGallery, o

RibbonSplitButton control.
Utilice la propiedad Items.
Agregue elementos a un control RibbonComboBox, RibbonDropDown o RibbonGallery. Utilice la propiedad Items.
Agregue controles a un RibbonMenu. Utilice la propiedad Items.

Para agregar controles a RibbonMenu después de cargar la cinta de opciones en la aplicación de Office, debe establecer la Dynamic propiedad en true antes de que la cinta de opciones se cargue en la aplicación de Office. Para obtener información, vea Establecer propiedades que se convierten en de solo lectura.
Obtener el elemento seleccionado de RibbonComboBox

RibbonDropDown o RibbonGallery.
Utilice la propiedad SelectedItem. Para RibbonComboBox, utilice la propiedad Text.
Consiga los grupos en un RibbonTab. Use la propiedad Groups.
Especifique el número de filas y columnas que aparecen en un RibbonGallery. Use las RowCount propiedades y ColumnCount .

Configurar propiedades que se vuelven de solo lectura

Algunas propiedades solo se pueden establecer antes de que se cargue la cinta de opciones. Hay tres lugares para establecer estas propiedades:

  • En la ventana Propiedades de Visual Studio.

  • En el constructor de la clase Ribbon .

  • En el método CreateRibbonExtensibilityObject de la clase ThisAddin, ThisWorkbook o ThisDocument de tu proyecto.

    Los menús dinámicos proporcionan algunas excepciones. Puede crear nuevos controles, establecer sus propiedades y, a continuación, agregarlos a un menú dinámico en tiempo de ejecución, incluso después de cargar la cinta de opciones que contiene el menú.

    Las propiedades de los controles que se agregan a un menú dinámico se pueden establecer en cualquier momento.

    Para obtener más información, vea Propiedades que se convierten en de solo lectura.

Establecer propiedades en el constructor de la barra de herramientas

Puede establecer las propiedades de un Ribbon control en el constructor de la clase Ribbon . Este código debe aparecer después de la llamada al InitializeComponent método . En el ejemplo siguiente se agrega un botón nuevo a un grupo si la hora actual es 17:00 Hora del Pacífico (UTC-8) o posterior.

Agregue el código siguiente.

public Ribbon1()
    : base(Globals.Factory.GetRibbonFactory())
{
    InitializeComponent();
    if (System.DateTime.Now.Hour > 16)
    {
        Microsoft.Office.Tools.Ribbon.RibbonButton button =
            this.Factory.CreateRibbonButton();
        button.Label = "New Button";
        group1.Items.Add(button);
    }
}

En los proyectos de Visual C# que actualizó desde Visual Studio 2008, el constructor aparece en el archivo de código de Ribbon.

En proyectos de Visual Basic o en proyectos de Visual C# creados en Visual Studio 2013, el constructor aparece en el archivo de código del Diseñador de Ribbon. Este archivo se denomina YourRibbonItem. Designer.cs o YourRibbonItem. Designer.vb. Para ver este archivo en proyectos de Visual Basic, primero debe hacer clic en el botón Mostrar todos los archivos en el Explorador de soluciones.

Establecer propiedades en el método CreateRibbonExtensibilityObject

Puede establecer las propiedades de un Ribbon control al sobrescribir el método CreateRibbonExtensibilityObject en la clase ThisAddin, ThisWorkbook o ThisDocument de su proyecto. Para obtener más información sobre el CreateRibbonExtensibilityObject método, consulte Información general de la cinta de opciones.

En el siguiente ejemplo, se establecen las propiedades de la cinta de opciones en el método CreateRibbonExtensibilityObject de la clase ThisWorkbook de un proyecto de libro de Excel.

Agregue el código siguiente.

protected override Microsoft.Office.Core.IRibbonExtensibility
    CreateRibbonExtensibilityObject()
{
    bool myCondition = false;
    if (myCondition == true)
    {
        Ribbon1 tempRibbon = new Ribbon1();
        tempRibbon.tab1.ControlId.ControlIdType =
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        tempRibbon.tab1.ControlId.OfficeId = "TabHome";
        return Globals.Factory.GetRibbonFactory().CreateRibbonManager( 
            new Microsoft.Office.Tools.Ribbon.IRibbonExtension[]
             { tempRibbon });
    }
    else
    {
        Ribbon2 tempRibbon = new Ribbon2();
        tempRibbon.tab1.ControlId.ControlIdType =
            Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
        tempRibbon.tab1.ControlId.OfficeId = "TabInsert";
        return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
                            new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { tempRibbon });
    }
}

Propiedades que pasan a ser de solo lectura

En la tabla siguiente se muestran las propiedades que solo se pueden establecer antes de que se cargue la cinta de opciones.

Nota:

Puede establecer las propiedades de los controles en menús dinámicos en cualquier momento. Esta tabla no se aplica en ese caso.

Propiedad Clase de control Ribbon
BoxStyle RibbonBox
ButtonType RibbonSplitButton
ColumnCount RibbonGallery
ControlId RibbonTab
DialogLauncher RibbonGroup
Dinámica RibbonMenu
Global OfficeRibbon
Grupos RibbonTab
ImageName RibbonButton

RibbonComboBox

RibbonDialogLauncher

RibbonDropDown

RibbonEditBox

RibbonGallery

RibbonMenu

RibbonSplitButton

RibbonToggleButton
ItemSize RibbonMenu

RibbonSplitButton
MaxLength RibbonComboBox

RibbonEditBox
Nombre RibbonComponent
Posición RibbonButton

RibbonCheckBox

RibbonGallery

RibbonGroup

RibbonMenu

RibbonSeparator

RibbonSplitButton

RibbonTab

RibbonToggleButton
RibbonType OfficeRibbon
RowCount RibbonGallery
ShowItemImage RibbonComboBox

RibbonDropDown

RibbonGallery
ShowItemLabel RibbonDropDown

RibbonGallery
ShowItemSelection RibbonGallery
SizeString RibbonComboBox

RibbonDropDown

RibbonEditBox
StartFromScratch OfficeRibbon
Pestañas OfficeRibbon
Título RibbonSeparator

Establecer propiedades para las cintas de opciones que aparecen en los inspectores de Outlook

Se crea una nueva instancia de la cinta cada vez que un usuario abre un Inspector en el que aparece la cinta. Sin embargo, puede establecer las propiedades enumeradas anteriormente en la tabla solo antes de crear la primera instancia de la cinta. Una vez creada la primera instancia, estas propiedades se convierten en de solo lectura porque la primera instancia define el archivo XML que Outlook usa para cargar la cinta de opciones.

Si tiene lógica condicional que establece cualquiera de estas propiedades en un valor diferente cuando se crean otras instancias de la cinta de opciones, este código no tendrá ningún efecto.

Nota:

Asegúrese de que la propiedad Name está establecida para cada control que agregue a una cinta de Outlook. Si agrega un control a una cinta de opciones de Outlook en tiempo de ejecución, debe establecer esta propiedad en su código. Si agrega un control a una cinta de opciones de Outlook en tiempo de diseño, la propiedad Nombre se establece automáticamente.

Eventos de control de la cinta de opciones

Cada clase de control contiene uno o varios eventos. En la tabla siguiente se describen estos eventos.

Event Description
Click Se produce cuando se hace clic en un control.
TextoCambiado Se produce cuando se cambia el texto de un cuadro de edición o un cuadro combinado.
Cargando elementos Se produce cuando Office solicita la colección de elementos del control. Office almacena en caché la colección Items hasta que su código cambia las propiedades del control o llama al método InvalidateControl.
ClicDeBotón Se produce cuando se hace clic en un botón dentro de un RibbonGallery o RibbonDropDown.
CambioDeSelección Se produce cuando cambia la selección en un RibbonDropDown o RibbonGallery.
DialogLauncherClick Se produce cuando se hace clic en el icono del iniciador de diálogos en la esquina inferior derecha de un grupo.

Los controladores de eventos de estos eventos tienen los dos parámetros siguientes.

Parámetro Description
remitente Un Object que representa el control que generó el evento.
e Un RibbonControlEventArgs que contiene un IRibbonControl. Use este control para tener acceso a cualquier propiedad que no esté disponible en el modelo de objetos de la cinta de opciones proporcionado por Visual Studio Tools para Office runtime .