Paneles de tareas personalizadosCustom task panes

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.Task panes are user interface panels that are typically docked to one side of a window in a Microsoft Office application. 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.Custom task panes give you a way to create your own task pane and provide users with a familiar interface to access your solution's features. Por ejemplo, la interfaz puede contener controles que ejecutan código para modificar documentos o mostrar datos de un origen de datos.For example, the interface can contain controls that run code to modify documents or display data from a data source.

Se aplica a: La información de este tema se aplica a VSTO agregar-en los proyectos de Outlook.Applies to: The information in this topic applies to VSTO Add-in projects for Outlook. Para obtener más información, consulte características disponibles por tipo de aplicación y el proyecto de Office.For more information, see Features available by Office application and project type.

Note

Un panel de tareas personalizado difiere del panel de acciones.A custom task pane differs from the actions pane. El panel de acciones es parte de las personalizaciones de nivel de documento de Microsoft Office Word y Microsoft Office Excel.The actions pane is part of document-level customizations for Microsoft Office Word and Microsoft Office Excel. Para obtener más información, consulte información general sobre el panel de acciones.For more information, see Actions pane overview.

Ventajas de los paneles de tareas personalizadosBenefits of custom task panes

Los paneles de tareas personalizados permiten integrar características en una interfaz de usuario conocida.Custom task panes let you integrate your features into a familiar user interface. Puede crear un panel de tareas personalizado rápidamente con herramientas de Visual Studio.You can create a custom task pane quickly by using Visual Studio tools.

Interfaz de usuario conocidaFamiliar user interface

Los usuarios de aplicaciones de Microsoft Office system ya están familiarizados con el uso de paneles de tareas, como el estilos y formato panel de tareas en Word.Users of applications in the Microsoft Office system are already familiar with using task panes such as the Styles and Formatting task pane in Word. Los paneles de tareas personalizados se comportan como los demás paneles de tareas de Microsoft Office System.Custom task panes behave like other task panes in the 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.Users can dock custom task panes to different sides of the application window, or they can drag custom task panes to any location in the window. 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.You can create a VSTO Add-in that displays multiple custom task panes at the same time, and users can control each task pane individually.

Compatibilidad con formularios Windows formsWindows forms support

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.The user interface of a custom task pane that you create by using the Office development tools in Visual Studio is based on Windows Forms controls. Puede usar el ya conocido Diseñador de Windows Forms para diseñar la interfaz de usuario de un panel de tareas personalizado.You can use the familiar Windows Forms Designer to design the user interface for a custom task pane. 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.You can also use the data binding support in Windows Forms to bind a data source to controls on the task pane.

Crear un panel de tareas personalizadoCreate a custom task pane

Puede crear un panel de tareas personalizado básico en dos pasos:You can create a basic custom task pane in two steps:

  1. Cree una interfaz de usuario para el panel de tareas personalizado agregando controles de Windows Forms al objeto UserControl.Create a user interface for your custom task pane by adding Windows Forms controls to a UserControl object.

  2. Cree una instancia del panel de tareas personalizado pasando el control de usuario al objeto CustomTaskPaneCollection en su complemento de VSTO.Instantiate the custom task pane by passing the user control to the CustomTaskPaneCollection object in your VSTO Add-in. 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.This collection returns a new CustomTaskPane object that you can use to modify the appearance of the task pane and respond to user events.

    Para obtener más información, vea Cómo: Agregar un panel de tareas personalizado a una aplicación.For more information, see How to: Add a custom task pane to an application.

Crear la interfaz de usuarioCreate the user interface

Todos los paneles de tareas personalizados que se crean con las herramientas de desarrollo de Office en Visual Studio contienen un objeto UserControl.All custom task panes that are created by using the Office development tools in Visual Studio contain a UserControl object. Este control de usuario proporciona la interfaz de usuario de su panel de tareas personalizado.This user control provides the user interface of your custom task pane. Puede crear el control de usuario en tiempo de diseño o en tiempo de ejecución.You can create the user control at design time or at runtime. 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.If you create the user control at design time, you can use the Windows Forms Designer to construct the user interface of your task pane.

Crear una instancia del panel de tareas personalizadoInstantiate the custom task pane

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.After you create a user control that contains the user interface of the custom task pane, you have to instantiate a CustomTaskPane. Para ello, pase el control de usuario a CustomTaskPaneCollection en el complemento de VSTO llamando a uno de los métodos Add.To do this, pass the user control to the CustomTaskPaneCollection in your VSTO Add-in by calling one of the Add methods. Esta colección se expone como el campo CustomTaskPanes de la clase ThisAddIn.This collection is exposed as the CustomTaskPanes field of the ThisAddIn class. El siguiente ejemplo de código está diseñado para ejecutarse desde la clase ThisAddIn.The following code example is intended to be run from the ThisAddIn class.

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

Los métodos Add devuelven un nuevo objeto CustomTaskPane.The Add methods return a new CustomTaskPane object. Puede usar este objeto para modificar el aspecto del panel de tareas y responder a eventos de usuario.You can use this object to modify the appearance of the task pane and to respond to user events.

El panel de tareas en varias ventanas de controlControl the task pane in multiple windows

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.Custom task panes are associated with a document frame window, which presents a view of a document or item to the user. El panel de tareas solo está visible cuando la ventana asociada está visible.The task pane is visible only when the associated window is 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:To determine which window displays the custom task pane, use the appropriate Add method overload when you create the task pane:

  • Para asociar el panel de tareas a la ventana activa, use el método Add.To associate the task pane with the active window, use the Add method.

  • Para asociar el panel de tareas a un documento que se hospeda en una ventana especificada, use el método Add.To associate the task pane with a document that is hosted by a specified window, use the Add method.

    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.Some Office applications require explicit instructions for when to create or display your task pane when more than one window is open. 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.This makes it important to consider where to instantiate the custom task pane in your code to ensure that the task pane appears with the appropriate documents or items in the application. Para obtener más información, consulte administrar paneles de tareas personalizados en las ventanas de la aplicación.For more information, see Manage custom task panes in application windows.

Acceso a la aplicación desde el panel de tareasAccess the application from the Task Pane

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.If you want to automate the application from the user control, you can directly access the object model by using Globals.ThisAddIn.Application in your code. La clase Globals estática proporciona acceso al objeto ThisAddIn.The static Globals class provides access to the ThisAddIn object. El campo Application de este objeto es el punto de entrada al modelo de objetos de la aplicación.The Application field of this object is the entry point into the object model of the application.

Para obtener más información sobre la Application campo de la ThisAddIn de objetos, consulte complementos VSTO de programa. Para ver un tutorial que muestra cómo automatizar una aplicación desde un panel de tareas personalizado, vea Tutorial: Operación automática de una aplicación desde un panel de tareas personalizado.For more information about the Application field of the ThisAddIn object, see Program VSTO Add-ins. For a walkthrough that demonstrates how to automate an application from a custom task pane, see Walkthrough: Automatic an application from a custom task pane. Para obtener más información sobre la Globals de clases, vea acceso Global a objetos en los proyectos de Office.For more information about the Globals class, see Global access to objects in Office projects.

Administrar la interfaz de usuario del panel de tareasManage the user interface of the Task Pane

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.After you create the task pane, you can use properties and events of the CustomTaskPane object to control the user interface of the task pane and to respond when the user changes the task pane.

Hacer visible el panel de tareas personalizadoMake the custom Task Pane visible

De forma predeterminada, el panel de tareas no está visible.By default, the task pane is not visible. Para hacer visible el panel de tareas, debe establecer el Visible propiedad true.To make the task pane visible, you must set the Visible property to true.

Los usuarios pueden cerrar un panel de tareas en cualquier momento haciendo clic en el cerrar botón (X) en la esquina del panel de tareas.Users can close a task pane at any time by clicking the Close button (X) in the corner of the task pane. Sin embargo, no hay ninguna manera predeterminada para que los usuarios vuelvan a abrir el panel de tareas personalizado.However, there is no default way for users to open the custom task pane again. 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.If a user closes a custom task pane, that user cannot view the custom task pane again unless you provide a way to display it.

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.If you create a custom task pane in your VSTO Add-in, you should also create a UI element, such as a button, that users can click to display or hide your custom task pane. 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.If you create a custom task pane in a Microsoft Office application that supports customizing the Ribbon, you can add a control group to the Ribbon with a button that displays or hides your custom task pane. Para ver un tutorial que muestra cómo hacerlo, consulte Tutorial: Sincronizar un panel de tareas personalizado con un botón de la cinta de opciones.For a walkthrough that demonstrates how to do this, see Walkthrough: Synchronize a custom task pane with a Ribbon button.

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 Microsoft.Office.Core.CommandBarButton que muestre u oculte el panel de tareas personalizado.If you create a custom task pane in a Microsoft Office application that does not support customizing the Ribbon, you can add a Microsoft.Office.Core.CommandBarButton that displays or hides your custom task pane.

Modificar la apariencia del panel de tareasModify the appearance of the task pane

Puede controlar el tamaño y la ubicación de un panel de tareas personalizado mediante las propiedades del objeto CustomTaskPane.You can control the size and location of a custom task pane by using properties of the CustomTaskPane object. 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.You can make many other changes to the appearance of a custom task pane by using properties of the UserControl object that is contained in the custom task pane. Por ejemplo, puede especificar una imagen de fondo para un panel de tareas personalizado mediante la propiedad BackgroundImage del control de usuario.For example, you can specify a background image for a custom task pane by using the BackgroundImage property of the user control.

En la tabla siguiente se enumeran los cambios que puede realizar en un panel de tareas personalizado usando las propiedades CustomTaskPane.The following table lists the changes you can make to a custom task pane by using CustomTaskPane properties.

TareaTask PropiedadProperty
Para cambiar el tamaño del panel de tareasTo change the size of the task pane Height

Width
Para cambiar la ubicación del panel de tareasTo change the location of the task pane DockPosition
Para ocultar el panel de tareas o hacerlo visibleTo hide the task pane or make it visible Visible
Para evitar que el usuario cambie la ubicación del panel de tareasTo prevent the user from changing the location of the task pane DockPositionRestrict

Programar eventos del panel de tareas personalizadoProgram custom task pane events

Tal vez desee que el complemento de VSTO responda cuando el usuario modifique el panel de tareas personalizado.You might want your VSTO Add-in to respond when the user modifies the custom task pane. 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.For example, if the user changes the orientation of the pane from vertical to horizontal, you might want to reposition the controls.

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.The following table lists the events that you can handle to respond to changes that the user makes to the custom task pane.

TareaTask eventoEvent
Responder cuando el usuario cambia la ubicación del panel de tareas.To respond when the user changes the location of the task pane. DockPositionChanged
Responder cuando el usuario oculta el panel de tareas o lo hace visible.To respond when the user hides the task pane or makes it visible. VisibleChanged

Limpiar los recursos utilizados por el panel de tareasClean up resources used by the task pane

Después de crear un panel de tareas personalizado, el objeto CustomTaskPane permanece en memoria mientras se ejecuta el complemento de VSTO.After you create a custom task pane, the CustomTaskPane object remains in memory as long as your VSTO Add-in is running. El objeto permanece en memoria incluso después de que el usuario hace clic en el cerrar botón (X) en la esquina del panel de tareas.The object remains in memory even after the user clicks the Close button (X) in the corner of the task pane.

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.To clean up resources used by the task pane while the VSTO Add-in is still running, use the Remove or RemoveAt methods. Estos métodos quitan el objeto CustomTaskPane especificado de la colección CustomTaskPanes y llaman al método Dispose del objeto.These methods remove the specified CustomTaskPane object from the CustomTaskPanes collection, and they call the Dispose method of the object.

Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime limpia automáticamente los recursos que usa el panel de tareas personalizado cuando se descarga el complemento de VSTO.The Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime automatically cleans up resources used by the custom task pane when the VSTO Add-in is unloaded. No llame a la Remove o RemoveAt métodos en el ThisAddIn_Shutdown controlador de eventos en el proyecto.Do not call the Remove or RemoveAt methods in the ThisAddIn_Shutdown event handler in your project. Estos métodos producirán ObjectDisposedException, ya que Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime limpia los recursos que usa el objeto CustomTaskPane antes de llamar a ThisAddIn_Shutdown.These methods will throw an ObjectDisposedException, because the Runtime de Microsoft Visual Studio Tools para OfficeVisual Studio Tools for Office runtime cleans up resources used by the CustomTaskPane object before ThisAddIn_Shutdown is called. Para obtener más información acerca de ThisAddIn_Shutdown, consulte eventos en proyectos de OfficeFor more information about ThisAddIn_Shutdown, see Events in Office projects

Administrar paneles de tareas personalizados en varias ventanas de aplicaciónManage custom task panes in multiple application windows

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.When you create a custom task pane in an application that uses multiple windows to display documents and other items, you need to take extra steps to ensure that the task pane is visible when the user expects it to be.

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.Custom task panes in all applications are associated with a document frame window, which presents a view of a document or item to the user. El panel de tareas solo está visible cuando la ventana asociada está visible.The task pane is visible only when the associated window is visible. Sin embargo, no todas las aplicaciones usan ventanas de marco de documento de la misma forma.However, not all applications use document frame windows the same way.

Los grupos de aplicaciones siguientes tienen requisitos de desarrollo diferentes:The following application groups have different development requirements:

OutlookOutlook

Cuando se crea un panel de tareas personalizado para Outlook, se asocia a una ventana específica del Explorador o el Inspector.When you create a custom task pane for Outlook, the custom task pane is associated with a specific Explorer or Inspector window. 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.Explorers are windows that display the contents of a folder, and Inspectors are windows that display an item such as an email message or a task.

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.If you want to display a custom task pane with multiple Explorer or Inspector windows, you need to create a new instance of the custom task pane when an Explorer or Inspector window opens. 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.To do this, handle an event that is raised when an Explorer or Inspector window is created, and then create the task pane in the event handler. 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.You can also handle Explorer and Inspector events to hide or display task panes depending on which window is visible.

Para asociar el panel de tareas con un explorador o Inspector específico, use el Add método para crear el panel de tareas y pase el Microsoft.Office.Interop.Outlook.Explorer o Microsoft.Office.Interop.Outlook.Inspector de objeto para el ventana parámetro.To associate the task pane with a specific Explorer or Inspector, use the Add method to create the task pane, and pass the Microsoft.Office.Interop.Outlook.Explorer or Microsoft.Office.Interop.Outlook.Inspector object to the window parameter. Para obtener más información sobre la creación de paneles de tareas personalizados, vea información general de paneles de tareas personalizado.For more information about creating custom task panes, see Custom task panes overview.

Evitar que varias instancias de un panel de tareas personalizado en OutlookPrevent multiple instances of a custom task pane in 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.To prevent Outlook windows from displaying multiple instances of a custom task pane, explicitly remove the custom task pane from the CustomTaskPanes collection of the ThisAddIn class when each window is closed. Llame al método Remove en un evento que se desencadene al cerrar una ventana, como Close o Close.Call the Remove method in an event that is raised when a window is closed, such as Close or 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.If you do not explicitly remove the custom task pane, Outlook windows might display multiple instances of the custom task pane. En ocasiones Outlook recicla las ventanas, y las ventanas recicladas conservan referencias a los paneles de tareas personalizados que se les adjuntaron.Outlook sometimes recycles windows, and recycled windows retain references to any custom task panes that were attached to them.

Word, InfoPath y PowerPointWord, InfoPath, and PowerPoint

Word, InfoPath y PowerPoint muestran cada documento en una ventana de marco de documento diferente.Word, InfoPath, and PowerPoint display each document in a different document frame window. Cuando se crea un panel de tareas personalizado para estas aplicaciones, el panel se asocia únicamente a un documento específico.When you create a custom task pane for these applications, the custom task pane is associated only with a specific document. Si el usuario abre un documento diferente, el panel de tareas personalizado se oculta hasta que el documento anterior esté visible de nuevo.If the user opens a different document, the custom task pane is hidden until the earlier document is visible again.

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.If you want to display a custom task pane with multiple documents, create a new instance of the custom task pane when the user creates a new document or opens an existing document. 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.To do this, handle events that are raised when a document is created or opened, and then create the task pane in the event handlers. También puede administrar eventos del documento para ocultar o mostrar paneles de tareas, en función de qué documento esté visible.You can also handle document events to hide or display task panes depending on which document is visible.

Para asociar el panel de tareas con una ventana de documento específico, use el Add método para crear el panel de tareas y pase un Window (para Word), Microsoft.Office.Interop.InfoPath.WindowObject (para InfoPath) o Microsoft.Office.Interop.PowerPoint.DocumentWindow (para PowerPoint) a la ventanaparámetro.To associate the task pane with a specific document window, use the Add method to create the task pane, and pass a Window (for Word), Microsoft.Office.Interop.InfoPath.WindowObject (for InfoPath), or Microsoft.Office.Interop.PowerPoint.DocumentWindow (for PowerPoint) to the window parameter.

Eventos de WordWord events

Para supervisar el estado de las ventanas de documento en Word, puede administrar los eventos siguientes:To monitor the state of document windows in Word, you can handle the following events:

Eventos de InfoPathInfoPath events

Para supervisar el estado de las ventanas de documento en InfoPath, puede administrar los eventos siguientes:To monitor the state of document windows in InfoPath, you can handle the following events:

Eventos de PowerPointPowerPoint events

Para supervisar el estado de las ventanas de documento en PowerPoint, puede administrar los eventos siguientes:To monitor the state of document windows in PowerPoint, you can handle the following events:

Vea tambiénSee also