Paneles de tareas personalizados

Los paneles de tareas son paneles de interfaz de usuario que normalmente están acoplados a un lado de una ventana en una aplicación de Microsoft Office. Los paneles de tareas personalizados proporcionan una manera de crear su propio panel de tareas y ofrecer a los usuarios una interfaz conocida para acceder a las características de la solución. Por ejemplo, la interfaz puede contener controles que ejecutan código para modificar documentos o mostrar datos de un origen de datos.

Se aplica a: La información de este tema se aplica a los proyectos de complementos de VSTO para Outlook. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Nota:

Un panel de tareas personalizado difiere del panel de acciones. El panel de acciones es parte de las personalizaciones de nivel de documento de Microsoft Office Word y Microsoft Office Excel. Para obtener más información, vea Información general sobre el panel Acciones.

Ventajas de los paneles de tareas personalizados

Los paneles de tareas personalizados permiten integrar características en una interfaz de usuario conocida. Puede crear un panel de tareas personalizado rápidamente con herramientas de Visual Studio.

Interfaz de usuario familiar

Los usuarios de aplicaciones del sistema de Microsoft Office ya están familiarizados con el uso de paneles de tareas, como el panel de tareas Estilos y formato en Word. Los paneles de tareas personalizados se comportan como los demás paneles de tareas de Microsoft Office System. Los usuarios pueden acoplar paneles de tareas personalizados en diferentes lados de la ventana de la aplicación o pueden arrastrar paneles de tareas personalizados a cualquier lugar de la ventana. Puede crear un complemento de VSTO que muestre varios paneles de tareas personalizados al mismo tiempo, y los usuarios pueden controlar cada panel de tareas individualmente.

Compatibilidad con formularios Windows Forms

La interfaz de usuario de un panel de tareas personalizado que se crea con las herramientas de desarrollo de Office en Visual Studio se basa en controles de Windows Forms. Puede usar el ya conocido Diseñador de Windows Forms para diseñar la interfaz de usuario de un panel de tareas personalizado. También puede usar la compatibilidad de enlace de datos de Windows Forms para enlazar un origen de datos a controles del panel de tareas.

Creación de un panel de tareas personalizado

Puede crear un panel de tareas personalizado básico en dos pasos:

  1. Cree una interfaz de usuario para el panel de tareas personalizado agregando controles de Windows Forms al objeto UserControl.

  2. Cree una instancia del panel de tareas personalizado pasando el control de usuario al objeto CustomTaskPaneCollection en su complemento de VSTO. Esta colección devuelve un nuevo objeto CustomTaskPane que puede usar para modificar el aspecto del panel de tareas y responder a eventos de usuario.

    Para obtener más información, consulte How to: Add a custom task pane to an application (Cómo: Agregar un panel de tareas personalizado a una aplicación).

Creación de la interfaz del usuario

Todos los paneles de tareas personalizados que se crean con las herramientas de desarrollo de Office en Visual Studio contienen un objeto UserControl. Este control de usuario proporciona la interfaz de usuario de su panel de tareas personalizado. Puede crear el control de usuario en tiempo de diseño o en tiempo de ejecución. Si crea el control de usuario en tiempo de diseño, puede usar el Diseñador de Windows Forms para construir la interfaz de usuario de su panel de tareas.

Creación de instancias del panel de tareas personalizado

Después de crear un control de usuario que contenga la interfaz de usuario del panel de tareas personalizado, debe crear una instancia de CustomTaskPane. Para ello, pase el control de usuario a CustomTaskPaneCollection en el complemento de VSTO llamando a uno de los métodos Add. Esta colección se expone como el campo CustomTaskPanes de la clase ThisAddIn. El siguiente ejemplo de código está diseñado para ejecutarse desde la clase ThisAddIn.

myUserControl1 = new MyUserControl();
myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
myCustomTaskPane.Visible = true;

Los métodos Add devuelven un nuevo objeto CustomTaskPane. Puede usar este objeto para modificar el aspecto del panel de tareas y responder a eventos de usuario.

Control del panel de tareas en varias ventanas

Los paneles de tareas personalizados están asociados a una ventana de marco de documento, que presenta al usuario una vista de un documento o elemento. El panel de tareas solo está visible cuando la ventana asociada está visible.

Para determinar qué ventana muestra el panel de tareas personalizado, use la sobrecarga del método Add adecuada al crear el panel de tareas:

  • Para asociar el panel de tareas a la ventana activa, use el método Add.

  • Para asociar el panel de tareas a un documento que se hospeda en una ventana especificada, use el método Add.

    Algunas aplicaciones de Office requieren instrucciones explícitas acerca de cuándo crear o mostrar el panel de tareas cuando se abre más de una ventana. Esto hace que sea más importante tener en cuenta dónde se crean las instancias de un panel de tareas personalizado en el código, para asegurarse de que el panel de tareas aparece con los documentos o elementos adecuados en la aplicación. Para obtener más información, consulte Administración de paneles de tareas personalizados en ventanas de aplicación.

Acceso a la aplicación desde el panel de tareas

Si desea automatizar la aplicación desde el control de usuario, puede acceder directamente al modelo de objetos usando Globals.ThisAddIn.Application en el código. La clase Globals estática proporciona acceso al objeto ThisAddIn. El campo Application de este objeto es el punto de entrada al modelo de objetos de la aplicación.

Para obtener más información sobre el Application campo del ThisAddIn objeto, vea Programa complementos de VSTO. Para ver un tutorial que muestra cómo automatizar una aplicación desde un panel de tareas personalizado, consulte Tutorial: Aplicación automática desde un panel de tareas personalizado. Para obtener más información sobre la Globals clase , vea Acceso global a objetos en proyectos de Office.

Administrar la interfaz de usuario del panel de tareas

Después de crear el panel de tareas, puede usar las propiedades y los eventos del objeto CustomTaskPane para controlar la interfaz de usuario del panel de tareas y responder cuando el usuario cambia el panel de tareas.

Hacer que el panel de tareas personalizado sea visible

De forma predeterminada, el panel de tareas no está visible. Para que el panel de tareas sea visible, debe establecer la Visible propiedad en true.

Los usuarios pueden cerrar un panel de tareas en cualquier momento haciendo clic en el botón Cerrar (X) en la esquina del panel de tareas. Sin embargo, no hay ninguna manera predeterminada para que los usuarios vuelvan a abrir el panel de tareas personalizado. Si un usuario cierra un panel de tareas personalizado, no podrá volver a ver el panel de tareas personalizado, a menos que le proporcione la manera de mostrarlo.

Si crea un panel de tareas personalizado en el complemento de VSTO, debe crear también un elemento de interfaz de usuario, como un botón, en el que los usuarios puedan hacer clic para mostrar u ocultar el panel de tareas personalizado. Si crea un panel de tareas personalizado en una aplicación de Microsoft Office que admite la personalización de la cinta de opciones, puede agregar un grupo de controles a la cinta con un botón que muestre u oculte el panel de tareas personalizado. Para ver un tutorial que muestra cómo hacerlo, consulte Tutorial: Sincronizar un panel de tareas personalizado con un botón de cinta de opciones.

Si crea un panel de tareas personalizado en una aplicación de Microsoft Office que no admite la personalización de la cinta de opciones, puede agregar un CommandBarButton que muestre u oculte el panel de tareas personalizado.

Modificar la apariencia del panel de tareas

Puede controlar el tamaño y la ubicación de un panel de tareas personalizado mediante las propiedades del objeto CustomTaskPane. Puede realizar muchos otros cambios en el aspecto de un panel de tareas personalizado usando las propiedades del objeto UserControl que se encuentra en el panel de tareas personalizado. Por ejemplo, puede especificar una imagen de fondo para un panel de tareas personalizado mediante la propiedad BackgroundImage del control de usuario.

En la tabla siguiente se enumeran los cambios que puede realizar en un panel de tareas personalizado usando las propiedades CustomTaskPane.

Tarea Propiedad
Para cambiar el tamaño del panel de tareas Height

Width
Para cambiar la ubicación del panel de tareas DockPosition
Para ocultar el panel de tareas o hacerlo visible Visible
Para evitar que el usuario cambie la ubicación del panel de tareas DockPositionRestrict

Programar eventos de panel de tareas personalizados

Tal vez desee que el complemento de VSTO responda cuando el usuario modifique el panel de tareas personalizado. Por ejemplo, si el usuario cambia la orientación del panel de vertical a horizontal, quizás desee cambiar la posición de los controles.

En la tabla siguiente se enumeran los eventos que puede controlar para responder a los cambios que el usuario realice en el panel de tareas personalizado.

Tarea Evento
Responder cuando el usuario cambia la ubicación del panel de tareas. DockPositionChanged
Responder cuando el usuario oculta el panel de tareas o lo hace visible. VisibleChanged

Limpieza de recursos usados por el panel de tareas

Después de crear un panel de tareas personalizado, el objeto CustomTaskPane permanece en memoria mientras se ejecuta el complemento de VSTO. El objeto permanece en memoria incluso después de que el usuario haga clic en el botón Cerrar (X) en la esquina del panel de tareas.

Para limpiar los recursos que usa el panel de tareas mientras el complemento de VSTO se está ejecutando, use los métodos Remove o RemoveAt. Estos métodos quitan el objeto CustomTaskPane especificado de la colección CustomTaskPanes y llaman al método Dispose del objeto.

El entorno de ejecución de Visual Studio Tools para Office limpia automáticamente los recursos usados por el panel de tareas personalizado cuando se descarga el complemento de VSTO. No llame a los Remove métodos o RemoveAt en el ThisAddIn_Shutdown controlador de eventos del proyecto. Estos métodos producirán un ObjectDisposedException, porque el entorno de ejecución de Visual Studio Tools para Office limpia los recursos usados por el CustomTaskPane objeto antes ThisAddIn_Shutdown de llamar a . Para obtener más información sobre ThisAddIn_Shutdown, vea Eventos en proyectos de Office.

Administrar paneles de tareas personalizados en varias ventanas de aplicación

Cuando se crea un panel de tareas personalizado en una aplicación que usa varias ventanas para mostrar documentos y otros elementos, deberá llevar a cabo otros pasos para asegurarse de que el panel de tareas está visible cuando el usuario así lo espere.

Los paneles de tareas personalizados de todas las aplicaciones están asociados a una ventana de marco de documento, que presenta al usuario una vista de un documento o elemento. El panel de tareas solo está visible cuando la ventana asociada está visible. Sin embargo, no todas las aplicaciones usan ventanas de marco de documento de la misma forma.

Los grupos de aplicaciones siguientes tienen requisitos de desarrollo diferentes:

Outlook

Cuando se crea un panel de tareas personalizado para Outlook, se asocia a una ventana específica del Explorador o el Inspector. Los exploradores son ventanas que muestran el contenido de una carpeta y los inspectores son ventanas que muestran un elemento como un mensaje de correo electrónico o una tarea.

Si desea mostrar un panel de tareas personalizado con varias ventanas del Explorador o el Inspector, deberá crear una nueva instancia del panel de tareas personalizado cuando se abre una ventana del Explorador o el Inspector. Para ello, controle el evento que se desencadena al crear una ventana del Explorador o el Inspector y, a continuación, cree el panel de tareas en el controlador de eventos. También puede administrar eventos del Explorador y del Inspector para ocultar o mostrar paneles de tareas, en función de qué ventana esté visible.

Para asociar el panel de tareas a un Explorador o Inspector específico, use el Add método para crear el panel de tareas y pase el Explorer objeto o Inspector al parámetro window . Para obtener más información sobre cómo crear paneles de tareas personalizados, consulte Información general sobre paneles de tareas personalizados.

Impedir varias instancias de un panel de tareas personalizado en Outlook

Para evitar que las ventanas de Outlook muestren varias instancias de un panel de tareas personalizado, quite explícitamente el panel de tareas personalizado de la colección CustomTaskPanes de la clase ThisAddIn cuando se cierra cada ventana. Llame al método Remove en un evento que se desencadene al cerrar una ventana, como Close o Close.

Si no quita explícitamente el panel de tareas personalizado, las ventanas de Outlook podrían mostrar varias instancias del panel de tareas personalizado. En ocasiones Outlook recicla las ventanas, y las ventanas recicladas conservan referencias a los paneles de tareas personalizados que se les adjuntaron.

Word, InfoPath y PowerPoint

Word, InfoPath y PowerPoint muestran cada documento en una ventana de marco de documento diferente. Cuando se crea un panel de tareas personalizado para estas aplicaciones, el panel se asocia únicamente a un documento específico. Si el usuario abre un documento diferente, el panel de tareas personalizado se oculta hasta que el documento anterior esté visible de nuevo.

Si desea mostrar un panel de tareas personalizado con varios documentos, cree una nueva instancia del panel de tareas personalizado cuando el usuario cree un documento nuevo o abra un documento existente. Para ello, controle los eventos que se generan cuando se crea o se abre un documento y, a continuación, cree el panel de tareas en los controladores de eventos. También puede administrar eventos del documento para ocultar o mostrar paneles de tareas, en función de qué documento esté visible.

Para asociar el panel de tareas a una ventana de documento específica, use el Add método para crear el panel de tareas y pasar un Window (para Word), (para InfoPath) WindowObject o DocumentWindow (para PowerPoint) al parámetro window .

Eventos de Word

Para supervisar el estado de las ventanas de documento en Word, puede administrar los eventos siguientes:

Eventos de InfoPath

Para supervisar el estado de las ventanas de documento en InfoPath, puede administrar los eventos siguientes:

Eventos de PowerPoint

Para supervisar el estado de las ventanas de documento en PowerPoint, puede administrar los eventos siguientes: