Partager via


Gestion des volets de tâches personnalisés dans plusieurs fenêtres d'application

Lorsque 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 afin de garantir l'affichage du volet de tâches lorsque l'utilisateur attend qu'il le soit.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau application pour les applications suivantes : Excel 2007, Excel 2010, InfoPath 2007, InfoPath 2010, Outlook 2007, Outlook 2010, PowerPoint 2007, PowerPoint 2010, Word 2007 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Les volets de tâches personnalisés de toutes les applications sont associés à une fenêtre frame de document, qui présente une vue d'un document ou élément à l'utilisateur. Le volet de tâches n'est visible que lorsque la fenêtre associée est visible. Toutes les applications n'utilisent cependant pas les fenêtres frame de document de la même façon.

Les groupes d'applications suivants ont des exigences différentes en termes de développement :

  • Outlook

  • Word, InfoPath et PowerPoint 2010

  • Excel et PowerPoint 2007

lien vers la vidéo Pour une démonstration vidéo connexe, consultez Comment faire pour gérer les volets de tâches dans les compléments Word ? (page éventuellement en anglais).

Outlook

Lorsque vous créez un volet de tâches personnalisé pour Outlook, celui-ci est associé à une fenêtre Explorateur ou Inspecteur spécifique. Les fenêtres Explorateur affichent le contenu d'un dossier, tandis que les fenêtres Inspecteur affichent un élément tel qu'un message électronique ou une tâche.

Pour afficher un volet de tâches personnalisé avec plusieurs fenêtres Explorateur ou Inspecteur, vous devez créer une nouvelle instance de ce volet lorsqu'une fenêtre Explorateur ou Inspecteur apparaît. Pour cela, gérez un événement qui se déclenche lorsqu'une fenêtre Explorateur ou Inspecteur est créée, puis créez le volet de tâches dans le gestionnaire d'événements. Vous pouvez également gérer des événements Explorateur et Inspecteur pour masquer ou afficher des volets de tâches en fonction de la fenêtre visible.

Pour associer le volet de tâches à un Explorateur ou un Inspecteur spécifique, utilisez la méthode CustomTaskPaneCollection.Add(UserControl, String, Object) pour créer le volet de tâches, puis passez l'objet Explorer ou Inspector au paramètre window. 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.

Pour une procédure pas à pas expliquant comment créer un volet de tâches pour chaque message électronique ouvert, consultez Procédure pas à pas : affichage de volets de tâches personnalisés avec des messages électroniques dans Outlook.

Événements Outlook

Pour analyser l'état des fenêtres Explorateur, vous pouvez gérer les événements Explorateur suivants :

Pour analyser l'état des fenêtres Inspecteur, vous pouvez gérer les événements Inspecteur suivants :

Empêcher plusieurs instances d'un volet de tâches personnalisé dans Outlook

Pour éviter que les fenêtres Outlook affichent 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 lors de la fermeture de chaque fenêtre. Appelez la méthode Remove dans un événement qui est déclenché lorsqu'une fenêtre est fermée, tel que ExplorerEvents_10_Event.Close ou InspectorEvents_10_Event.Close.

Si vous ne supprimez pas explicitement le volet de tâches personnalisé, les fenêtres Outlook risquent d'afficher plusieurs instances de ce volet. Parfois, Outlook recycle des fenêtres, et ces fenêtres recyclées conservent des références à tout volet de tâches personnalisé qui pouvait leur être associé.

Word, InfoPath et PowerPoint 2010

Word, InfoPath et PowerPoint 2010 affichent chaque document dans une fenêtre frame de document différente. Lorsque vous créez un volet de tâches personnalisé pour ces applications, celui-ci est associé à un document spécifique uniquement. Si l'utilisateur ouvre un document différent, le volet de tâches personnalisé est masqué jusqu'à ce que le document antérieur soit à nouveau visible.

Pour afficher un volet de tâches personnalisé avec plusieurs documents, créez une nouvelle instance de ce volet lorsque l'utilisateur crée un document ou ouvre un document existant. Pour ce faire, gérez des événements qui se déclenchent lorsqu'un document est créé ou ouvert, puis créez le volet de tâches dans les gestionnaires d'événements. Vous pouvez également gérer des événements de document pour masquer ou afficher des volets de tâches en fonction du document visible.

Pour associer le volet de tâches à une fenêtre de document spécifique, utilisez la méthode CustomTaskPaneCollection.Add(UserControl, String, Object) pour créer le volet de tâches, puis passez un Microsoft.Office.Interop.Word.Window (pour Word), un Microsoft.Office.Interop.InfoPath.WindowObject (pour InfoPath) ou un Microsoft.Office.Interop.PowerPoint.DocumentWindow (pour PowerPoint) au paramètre window.

Pour plus d'informations, consultez Gérer les volets de tâches dans plusieurs documents Word et InfoPath (page éventuellement en anglais). Cet article traite exclusivement de Word et InfoPath, cependant les concepts qui y sont mentionnés s'appliquent également à PowerPoint 2010, car cette version de PowerPoint possède une interface SDI.

Événements Word

Vous pouvez gérer les événements suivants pour surveiller l'état de fenêtres de document dans Word :

Événements InfoPath

Vous pouvez gérer les événements suivants pour surveiller l'état de fenêtres de document dans InfoPath :

Événements PowerPoint

Vous pouvez gérer les événements suivants pour surveiller l'état des fenêtres de document dans PowerPoint 2010 :

Excel et PowerPoint 2007

Excel et PowerPoint 2007 créent une fenêtre frame de document pour tous les documents (autrement dit, pour les classeurs et les présentations). Lorsque vous créez un volet de tâches personnalisé dans ces applications, celui-ci est disponible pour chaque document ouvert dans l'application. Aucun travail supplémentaire de votre part n'est requis pour garantir l'affichage du volet de tâches pour chaque document.

Cependant, en fonction du document actif, vous pouvez souhaiter masquer ou afficher le volet de tâches ou encore afficher des éléments de l'interface utilisateur ou des données différents dans le volet de tâches. Pour ce faire, gérez des événements qui se déclenchent lorsqu'un document est créé, ouvert ou activé, puis mettez le volet de tâches à jour dans les gestionnaires d'événements.

Événements Excel

Vous pouvez gérer les événements suivants pour surveiller l'état de classeurs dans Excel :

Événements PowerPoint

Vous pouvez gérer les événements suivants pour surveiller l'état des présentations dans PowerPoint 2007 :

Exemple

L'exemple de code suivant explique comment masquer ou afficher un volet de tâches personnalisé dans un gestionnaire d'événements pour l'événement WorkbookActivate dans un complément Excel. Lorsque tous les classeurs sont activés, le volet de tâches n'est visible que si le classeur est appelé SalesData.xls ; sinon, il est masqué. Pour exécuter cet exemple, remplacez le gestionnaire d'événements ThisAddIn_Startup par défaut dans la classe ThisAddIn par le code suivant. Cet exemple part du principe que votre projet inclut un UserControl appelé UserControl1.

Dim myUserControl As UserControl1
Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
    myUserControl = New UserControl1()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl, "Sales Task Pane")
End Sub

Private Sub Application_WorkbookActivate(ByVal Wb As Excel.Workbook) _
    Handles Application.WorkbookActivate

    If Wb.Name = "SalesData.xlsx" Then
        myCustomTaskPane.Visible = True
    Else
        myCustomTaskPane.Visible = False
    End If
End Sub
private UserControl1 myUserControl;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    this.Application.WorkbookActivate += new Excel.AppEvents_WorkbookActivateEventHandler(
        Application_WorkbookActivate);

    myUserControl = new UserControl1();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl, "Sales Task Pane");
}

void Application_WorkbookActivate(Excel.Workbook Wb)
{
    if (Wb.Name == "SalesData.xlsx")
        myCustomTaskPane.Visible = true;
    else
        myCustomTaskPane.Visible = false;
}

Voir aussi

Tâches

Comment : ajouter un volet de tâches personnalisé à une application

Procédure pas à pas : affichage de volets de tâches personnalisés avec des messages électroniques dans Outlook

Comment : afficher des volets de tâches personnalisés avec des messages électroniques dans Outlook

Procédure pas à pas : synchronisation d'un volet de tâches personnalisé avec un bouton dans le ruban

Autres ressources

Vue d'ensemble des volets de tâches personnalisés

Gérer les volets de tâches dans plusieurs documents Word et InfoPath (page éventuellement en anglais)

Historique des modifications

Date

Historique

Motif

Mai 2010

Ajout de détails concernant la gestion des volets de tâches personnalisés dans PowerPoint 2010.

Améliorations apportées aux informations.