Volets de tâches personnalisésCustom task panes

Les volets de tâches sont des panneaux d'interface utilisateur généralement ancrés à l'un des côtés d'une fenêtre dans une application Microsoft Office.Task panes are user interface panels that are typically docked to one side of a window in a Microsoft Office application. Les volets de tâches personnalisés vous permettent de créer votre propre volet de tâches et de fournir aux utilisateurs une interface familière pour accéder aux fonctionnalités de votre solution.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. Par exemple, l'interface peut comporter des contrôles exécutant du code pour modifier des documents ou afficher des données à partir d'une source de données.For example, the interface can contain controls that run code to modify documents or display data from a data source.

S’applique à : Les informations contenues dans cette rubrique s’applique à VSTO ajouter-dans les projets pour Outlook.Applies to: The information in this topic applies to VSTO Add-in projects for Outlook. Pour plus d’informations, consultez fonctionnalités disponibles par type d’application et de projet Office.For more information, see Features available by Office application and project type.

Note

Un volet de tâches personnalisé diffère du volet Actions.A custom task pane differs from the actions pane. Le volet Actions fait partie des personnalisations au niveau du document pour Microsoft Office Word et Microsoft Office Excel.The actions pane is part of document-level customizations for Microsoft Office Word and Microsoft Office Excel. Pour plus d’informations, consultez vue d’ensemble du volet Actions.For more information, see Actions pane overview.

Avantages des volets de tâches personnalisésBenefits of custom task panes

Les volets de tâches personnalisés vous permettent d'intégrer vos propres fonctionnalités dans une interface utilisateur familière.Custom task panes let you integrate your features into a familiar user interface. Vous pouvez créer rapidement un volet de tâches personnalisé à l'aide des outils Visual Studio.You can create a custom task pane quickly by using Visual Studio tools.

Interface utilisateur familièreFamiliar user interface

Les utilisateurs des applications du système Microsoft Office sont déjà familiarisés avec l’utilisation des volets de tâches, tels que le volet de tâches styles et mise en forme dans 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. Les volets de tâches personnalisés se comportent comme les autres volets de tâches de Microsoft Office System.Custom task panes behave like other task panes in the Microsoft Office system. Les utilisateurs peuvent ancrer les volets de tâches personnalisés aux différents côtés de la fenêtre d’application ou les faire glisser n’importe où dans la fenêtre.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. Vous pouvez créer un complément VSTO qui affiche plusieurs volets de tâches personnalisés simultanément, et les utilisateurs peuvent contrôler individuellement chaque volet de tâches.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.

Prise en charge de Windows FormsWindows forms support

L’interface utilisateur d’un volet de tâches personnalisé que vous créez à l’aide des outils de développement Office dans Visual Studio est basée sur les contrôles 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. Le concepteur Windows Forms familier vous permet de concevoir l'interface utilisateur pour un volet de tâches personnalisé.You can use the familiar Windows Forms Designer to design the user interface for a custom task pane. Vous pouvez également utiliser la prise en charge des liaisons de données dans Windows Forms pour lier une source de données à des contrôles dans le volet de tâches.You can also use the data binding support in Windows Forms to bind a data source to controls on the task pane.

Créer un volet de tâches personnaliséCreate a custom task pane

Vous pouvez créer un volet de tâches personnalisé de base en deux étapes :You can create a basic custom task pane in two steps:

  1. Créez une interface utilisateur pour votre volet de tâches personnalisé en ajoutant des contrôles Windows Forms à un objet UserControl.Create a user interface for your custom task pane by adding Windows Forms controls to a UserControl object.

  2. Instanciez le volet de tâches personnalisé en passant le contrôle utilisateur à l’objet CustomTaskPaneCollection dans votre complément VSTO.Instantiate the custom task pane by passing the user control to the CustomTaskPaneCollection object in your VSTO Add-in. Cette collection retourne un nouvel objet CustomTaskPane pouvant servir à modifier l'apparence du volet de tâches et à répondre aux événements utilisateur.This collection returns a new CustomTaskPane object that you can use to modify the appearance of the task pane and respond to user events.

    Pour plus d'informations, voir Procédure : Ajoutez un volet de tâches personnalisé à uneapplication.For more information, see How to: Add a custom task pane to an application.

Créer l’interface utilisateurCreate the user interface

Tous les volets de tâches personnalisés créés à l’aide des outils de développement Office dans Visual Studio contiennent un objet UserControl.All custom task panes that are created by using the Office development tools in Visual Studio contain a UserControl object. Ce contrôle utilisateur fournit l'interface utilisateur de votre volet de tâches personnalisé.This user control provides the user interface of your custom task pane. Vous pouvez créer le contrôle utilisateur au moment du design ou au moment de l’exécution.You can create the user control at design time or at runtime. Si vous le créez au moment du design, vous pouvez utiliser le concepteur Windows Forms pour construire l'interface utilisateur de votre volet de tâches.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.

Instancier le volet de tâches personnaliséInstantiate the custom task pane

Après avoir créé un contrôle utilisateur contenant l'interface utilisateur du volet de tâches personnalisé, vous devez instancier un objet CustomTaskPane.After you create a user control that contains the user interface of the custom task pane, you have to instantiate a CustomTaskPane. Pour cela, passez le contrôle utilisateur à l’objet CustomTaskPaneCollection de votre complément VSTO en appelant l’une des méthodes Add.To do this, pass the user control to the CustomTaskPaneCollection in your VSTO Add-in by calling one of the Add methods. Cette collection est exposée en tant que champ CustomTaskPanes de la classe ThisAddIn.This collection is exposed as the CustomTaskPanes field of the ThisAddIn class. L'exemple de code suivant est destiné à être exécuté à partir de la classe 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;

Les méthodes Add retournent un nouvel objet CustomTaskPane.The Add methods return a new CustomTaskPane object. Vous pouvez utiliser cet objet pour modifier l'apparence du volet de tâches et répondre aux événements utilisateur.You can use this object to modify the appearance of the task pane and to respond to user events.

Contrôler le volet de tâches dans plusieurs fenêtresControl the task pane in multiple windows

Les volets de tâches personnalisés sont associés à une fenêtre frame de document, qui présente une vue d’un document ou d’un élément à l’utilisateur.Custom task panes are associated with a document frame window, which presents a view of a document or item to the user. Le volet de tâches est visible uniquement quand la fenêtre associée est visible.The task pane is visible only when the associated window is visible.

Pour déterminer la fenêtre qui affiche le volet de tâches personnalisé, utilisez la surcharge de méthode Add appropriée quand vous créez le volet de tâches :To determine which window displays the custom task pane, use the appropriate Add method overload when you create the task pane:

  • Pour associer le volet de tâches à la fenêtre active, utilisez la méthode Add.To associate the task pane with the active window, use the Add method.

  • Pour associer le volet de tâches à un document hébergé par une fenêtre spécifiée, utilisez la méthode Add.To associate the task pane with a document that is hosted by a specified window, use the Add method.

    Certaines applications Office nécessitent des instructions explicites pour savoir quand créer ou afficher votre volet de tâches, quand plusieurs fenêtres sont ouvertes.Some Office applications require explicit instructions for when to create or display your task pane when more than one window is open. Il est donc important de se demander où instancier le volet de tâches personnalisé dans votre code pour vous assurer que ce volet s'affiche avec les documents et éléments appropriés dans l'application.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. Pour plus d’informations, consultez gérer les volets des tâches personnalisés dans les fenêtres d’application.For more information, see Manage custom task panes in application windows.

Accéder à l’application à partir du volet de tâchesAccess the application from the Task Pane

Pour automatiser l'application à partir du contrôle utilisateur, vous pouvez directement accéder au modèle objet en utilisant Globals.ThisAddIn.Application dans votre code.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 classe Globals statique permet d'accéder à l'objet ThisAddIn.The static Globals class provides access to the ThisAddIn object. Le champ Application de cet objet est le point d'entrée dans le modèle objet de l'application.The Application field of this object is the entry point into the object model of the application.

Pour plus d’informations sur Application le champ de ThisAddIn l’objet, consultez compléments VSTO du programme. Pour obtenir une procédure pas à pas qui montre comment automatiser une application à partir d’un volet de tâches personnalisé, consultez Procédure pas à pas: Automatisation d’une application à partir d’unvolet de tâches personnalisé.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. Pour plus d’informations sur Globals la classe, consultez accès global aux objets dans les projets Office.For more information about the Globals class, see Global access to objects in Office projects.

Gérer l’interface utilisateur du volet de tâchesManage the user interface of the Task Pane

Après avoir créé le volet de tâches, vous pouvez utiliser les propriétés et événements de l’objet CustomTaskPane pour contrôler l’interface utilisateur du volet de tâches et répondre quand l’utilisateur modifie ce volet.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.

Rendre le volet des tâches personnalisé visibleMake the custom Task Pane visible

Par défaut, le volet de tâches n’est pas visible.By default, the task pane is not visible. Pour afficher le volet de tâches, vous devez affecter à Visible la propriété la valeur true.To make the task pane visible, you must set the Visible property to true.

Les utilisateurs peuvent fermer un volet de tâches à tout moment en cliquant sur le bouton Fermer (X) dans le coin du volet de tâches.Users can close a task pane at any time by clicking the Close button (X) in the corner of the task pane. Toutefois, il n'existe pas de méthode par défaut permettant de rouvrir le volet de tâches personnalisé.However, there is no default way for users to open the custom task pane again. Si un utilisateur ferme un volet de tâches personnalisé, il ne peut pas l'afficher de nouveau à moins que vous lui fournissiez un moyen de le faire.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 vous créez un volet de tâches personnalisé dans votre complément VSTO, vous devez également créer un élément d'interface utilisateur, tel qu'un bouton, sur lequel les utilisateurs peuvent cliquer pour afficher ou masquer le volet de tâches personnalisé.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 vous créez un volet de tâches personnalisé dans une application Microsoft Office qui prend en charge la personnalisation du ruban, vous pouvez ajouter un groupe de contrôles au ruban avec un bouton permettant d'afficher ou de masquer le volet de tâches personnalisé.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. Pour obtenir une procédure pas à pas qui montre comment procéder , consultez Procédure pas à pas: Synchroniser un volet de tâches personnalisé avec unbouton de ruban.For a walkthrough that demonstrates how to do this, see Walkthrough: Synchronize a custom task pane with a Ribbon button.

Si vous créez un volet de tâches personnalisé dans une application Microsoft Office qui ne prend en charge la personnalisation du ruban, vous pouvez ajouter un objet Microsoft.Office.Core.CommandBarButton permettant d'afficher ou de masquer le volet de tâches personnalisé.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.

Modifier l’apparence du volet de tâchesModify the appearance of the task pane

Vous pouvez contrôler la taille et l’emplacement d’un volet de tâches personnalisé à l’aide des propriétés de l’objet CustomTaskPane.You can control the size and location of a custom task pane by using properties of the CustomTaskPane object. Vous pouvez apporter de nombreuses autres modifications à l'apparence d'un volet de tâches personnalisé à l'aide des propriétés de l'objet UserControl figurant dans le volet de tâches personnalisé.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. Par exemple, vous pouvez spécifier une image d’arrière-plan pour un volet de tâches personnalisé à l’aide de la propriété BackgroundImage du contrôle utilisateur.For example, you can specify a background image for a custom task pane by using the BackgroundImage property of the user control.

Le tableau suivant répertorie les modifications que vous pouvez apporter à un volet de tâches personnalisé à l'aide des propriétés CustomTaskPane.The following table lists the changes you can make to a custom task pane by using CustomTaskPane properties.

TâcheTask PropriétéProperty
Modifier la taille du volet de tâchesTo change the size of the task pane Height

Width
Modifier l'emplacement du volet de tâchesTo change the location of the task pane DockPosition
Masquer et rendre visible le volet de tâchesTo hide the task pane or make it visible Visible
Empêcher l'utilisateur de modifier l'emplacement du volet de tâchesTo prevent the user from changing the location of the task pane DockPositionRestrict

Événements du volet Office personnalisé du programmeProgram custom task pane events

Vous souhaitez peut-être que votre complément VSTO réponde quand l'utilisateur modifie le volet de tâches personnalisé.You might want your VSTO Add-in to respond when the user modifies the custom task pane. Par exemple, si l'utilisateur remplace l'orientation verticale du volet par l'orientation horizontale, vous pouvez repositionner les contrôles.For example, if the user changes the orientation of the pane from vertical to horizontal, you might want to reposition the controls.

Le tableau suivant répertorie les événements que vous pouvez gérer pour répondre aux modifications susceptibles d'être apportées par l'utilisateur dans le volet de tâches personnalisé.The following table lists the events that you can handle to respond to changes that the user makes to the custom task pane.

TâcheTask ÉvénementEvent
Répondre quand l'utilisateur modifie l'emplacement du volet de tâchesTo respond when the user changes the location of the task pane. DockPositionChanged
Répondre quand l'utilisateur masque ou rend visible le volet de tâchesTo respond when the user hides the task pane or makes it visible. VisibleChanged

Nettoyer les ressources utilisées par le volet de tâchesClean up resources used by the task pane

Une fois que vous avez créé un volet de tâches personnalisé, l’objet CustomTaskPane reste en mémoire tant que votre complément VSTO est en cours d’exécution.After you create a custom task pane, the CustomTaskPane object remains in memory as long as your VSTO Add-in is running. L’objet reste en mémoire même lorsque l’utilisateur clique sur le bouton Fermer (X) dans le coin du volet de tâches.The object remains in memory even after the user clicks the Close button (X) in the corner of the task pane.

Pour nettoyer les ressources utilisées par le volet de tâches alors que le complément VSTO est encore en cours d’exécution, utilisez les méthodes Remove ou RemoveAt.To clean up resources used by the task pane while the VSTO Add-in is still running, use the Remove or RemoveAt methods. Ces méthodes suppriment l’objet CustomTaskPane spécifié de la collection CustomTaskPanes, et elles appellent la méthode Dispose de l’objet.These methods remove the specified CustomTaskPane object from the CustomTaskPanes collection, and they call the Dispose method of the object.

Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime nettoie automatiquement les ressources utilisées par le volet de tâches personnalisé quand le complément VSTO est déchargé.The Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime automatically cleans up resources used by the custom task pane when the VSTO Add-in is unloaded. N’appelez pas les Remove méthodes RemoveAt ou dans le ThisAddIn_Shutdown gestionnaire d’événements de votre projet.Do not call the Remove or RemoveAt methods in the ThisAddIn_Shutdown event handler in your project. Ces méthodes lèvent une exception ObjectDisposedException car Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime nettoie les ressources utilisées par l'objet CustomTaskPane avant l'appel de ThisAddIn_Shutdown.These methods will throw an ObjectDisposedException, because the Visual Studio Tools pour Office RuntimeVisual Studio Tools for Office runtime cleans up resources used by the CustomTaskPane object before ThisAddIn_Shutdown is called. Pour plus d’informations ThisAddIn_Shutdownsur, consultez événements dans les projets Office.For more information about ThisAddIn_Shutdown, see Events in Office projects.

Gérer les volets de tâches personnalisés dans plusieurs fenêtres d’applicationManage custom task panes in multiple application windows

Quand vous créez un volet de tâches personnalisé dans une application qui utilise plusieurs fenêtres pour afficher des documents et d'autres éléments, vous devez prendre des mesures supplémentaires pour garantir l'affichage du volet de tâches quand l'utilisateur s'attend à le voir.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.

Dans toutes les applications, les volets de tâches personnalisés sont associés à une fenêtre frame de document, qui présente une vue d’un document ou d’un élément à l’utilisateur.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. Le volet de tâches est visible uniquement quand la fenêtre associée est visible.The task pane is visible only when the associated window is visible. Toutefois, toutes les applications n'utilisent pas les fenêtres frame de document de la même façon.However, not all applications use document frame windows the same way.

Les groupes d’applications suivants ont des exigences différentes en termes de développement :The following application groups have different development requirements:

ProgrammeOutlook

Quand vous créez un volet de tâches personnalisé pour Outlook, le volet est associé à une fenêtre d’explorateur ou d’inspecteur spécifique.When you create a custom task pane for Outlook, the custom task pane is associated with a specific Explorer or Inspector window. Les explorateurs sont des fenêtres qui affichent le contenu d’un dossier, et les inspecteurs sont des fenêtres qui affichent un élément tel qu’un message électronique ou une tâche.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.

Pour afficher un volet de tâches personnalisé avec plusieurs fenêtres d’explorateur ou d’inspecteur, vous devez créer une nouvelle instance du volet de tâches personnalisé quand une fenêtre d’explorateur ou d’inspecteur s’ouvre.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. Pour cela, gérez un événement qui se déclenche quand une fenêtre d'explorateur ou d'inspecteur est créée, puis créez le volet de tâches dans le gestionnaire d'événements.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. Vous pouvez également gérer les événements d’explorateur et d’inspecteur pour masquer ou afficher les volets de tâches en fonction de la fenêtre visible.You can also handle Explorer and Inspector events to hide or display task panes depending on which window is visible.

Pour associer le volet de tâches à un explorateur ou un inspecteur spécifique, Add utilisez la méthode pour créer le volet de tâches et Microsoft.Office.Interop.Outlook.Explorer transmettez l’objet ou Microsoft.Office.Interop.Outlook.Inspector au paramètre de fenêtre .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. Pour plus d’informations sur la création de volets de tâches personnalisés, consultez vue d’ensemble des volets de tâches personnalisés.For more information about creating custom task panes, see Custom task panes overview.

Empêcher l’exécution de plusieurs instances d’un volet de tâches personnalisé dans OutlookPrevent multiple instances of a custom task pane in Outlook

Pour empêcher les fenêtres Outlook d'afficher plusieurs instances d'un volet de tâches personnalisé, supprimez explicitement le volet de tâches personnalisé de la collection CustomTaskPanes de la classe ThisAddIn quand chaque fenêtre est fermée.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. Appelez la méthode Remove dans un événement qui est déclenché quand une fenêtre est fermée, tel que Close ou Close.Call the Remove method in an event that is raised when a window is closed, such as Close or Close.

Si vous ne supprimez pas explicitement le volet de tâches personnalisé, les fenêtres Outlook peuvent afficher plusieurs instances du volet de tâches personnalisé.If you do not explicitly remove the custom task pane, Outlook windows might display multiple instances of the custom task pane. Outlook recycle parfois des fenêtres. Ces fenêtres recyclées conservent les références aux éventuels volets de tâches personnalisés qui leur ont été attachés.Outlook sometimes recycles windows, and recycled windows retain references to any custom task panes that were attached to them.

Word, InfoPath et PowerPointWord, InfoPath, and PowerPoint

Word, InfoPath et PowerPoint affichent chaque document dans une fenêtre frame de document différente.Word, InfoPath, and PowerPoint display each document in a different document frame window. Quand vous créez un volet de tâches personnalisé pour ces applications, le volet est associé uniquement à un document spécifique.When you create a custom task pane for these applications, the custom task pane is associated only with a specific document. Si l’utilisateur ouvre un autre document, le volet de tâches personnalisé est masqué jusqu’à ce que le document précédent soit de nouveau visible.If the user opens a different document, the custom task pane is hidden until the earlier document is visible again.

Pour afficher un volet de tâches personnalisé avec plusieurs documents, créez une nouvelle instance du volet de tâches personnalisé quand l’utilisateur crée un nouveau document ou ouvre un document existant.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. Pour cela, gérez les événements qui se déclenchent quand un document est créé ou ouvert, puis créez le volet de tâches dans les gestionnaires d’événements.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. Vous pouvez également gérer les événements de document pour masquer ou afficher les volets de tâches en fonction du document visible.You can also handle document events to hide or display task panes depending on which document is visible.

Pour associer le volet de tâches à une fenêtre de document spécifique, Add utilisez la méthode pour créer le volet de tâches et Window transmettez un (pour Microsoft.Office.Interop.InfoPath.WindowObject Word), (pour InfoPath) ou DocumentWindow (pour PowerPoint) au paramètre de fenêtre . .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 DocumentWindow (for PowerPoint) to the window parameter.

Événements WordWord events

Pour surveiller l'état des fenêtres de document dans Word, vous pouvez gérer les événements suivants :To monitor the state of document windows in Word, you can handle the following events:

Événements InfoPathInfoPath events

Pour surveiller l'état des fenêtres de document dans InfoPath, vous pouvez gérer les événements suivants :To monitor the state of document windows in InfoPath, you can handle the following events:

Événements PowerPointPowerPoint events

Pour surveiller l'état des fenêtres de document dans PowerPoint, vous pouvez gérer les événements suivants :To monitor the state of document windows in PowerPoint, you can handle the following events:

Voir aussiSee also